作者dis8105 (苍宇)
看板Wrong_spell
标题[讨论] 论汉字编码不重复的可能及实践方法
时间Tue Jun 27 16:04:04 2023
想了许久不确定这篇应该放在输入法版还是这版,最後想想内容还是比较学术一点就在这
边发布了
以下是网页好读版:
https://dustinliao.blogspot.com/2023/06/blog-post.html
自接触《仓颉输入法》以降,甚是喜欢朱邦复先生对於汉字传承的理念,但对於《仓颉输
入法》在某些省码概念下仍有不满。多方阅览後,了解到汉字编码的难处,专研此道十余
载,今日有兴在此与各位前辈分享研究心得。基於以下方法(为之後称呼方便该方法名为
《仓易输入法》,简称《仓易》;《仓颉输入法》简称《仓颉》)作者拆解了6507个汉字
无重码,虽然对於浩瀚字海仍显微小。但笔者希望公布此方法让有在关注编码的前辈们,
或感兴趣的同好能接续发展。
https://docs.google.com/spreadsheets/d/1xCZW9btiPzQfCk7XznJ61C67H8yDNPgg/edit?usp=sharing&ouid=106073667106723969922&rtpof=true&sd=true
以上是成果网址。另外,在开始详述《仓易》编码逻辑之前,先来看看以下几个篇章标题
。这将方便各位阅读时能找到要看的重点。
目录:
一、书写汉字带给《仓易输入法》的启迪
二、《仓易输入法》的框架介绍
三、《仓易输入法》实务操作及安装
四、《仓易输入法》後话及总结
一、书写汉字带给《仓易输入法》的启迪
再谈编码之前,先讲讲几个重要的书写汉字特徵(为之後辨别之便,使用笔杆子书写的汉
字称之为书写汉字,简称汉书;使用按钮敲击呈现的汉字称为数位汉字,简称汉码),这
将有助大家理解我的推演过程。
1.汉书不论笔画多寡,字与字之间所占据的空间是相同的,在此我称之为手写九宫格,而
这将启迪《仓易》一个重要的概念「无」字卦的概念,後续将再说明之。
2.汉书不论字形长相为何,字中必然藏有部首并且仅有一组。而《仓易》也将贯彻此一观
念,并且作为汉码与汉书能一一对应的核心重点。
3.所有汉字皆能做一级字源拆分(意及每个字都有其源头,不论其是否指向自己)而根据
这份结果《仓易》将其拿来作为字形结构的分析,并从表意文字描述字符中提取四种名称
及符号「行B列B围B嵌v做为《仓易》的确认键。
4.最後,汉字发展渊远流长,许多书写字体(甲骨、金文、小篆等等)因应书写工具或习
惯而发生改变,但之所以这些字体彼此还能看出传承关系,不外乎是因为字里行间的图像
符号有其一定的内在逻辑及规律,纵使少许的增笔或少笔甚至是变形亦能推敲得出。因此
《仓易》拆解文字的精神是:若是编码过程中,字形符号看似有多种拆解长相,则首重字
形符号背後的涵义。例如:「告」、「先」的字形分析应当是「牛口」、「止儿」,那在
《仓易》这两个字的上半部就会视为两种不同的编码形体;而「义」、「羚」的字形分析
应当是「羊我」、「羊令」那这两个字的前半部就会使用相同的编码概念。但字理的发展
过程中出现严重变形者,则不在此列。具体请参看结果连结<汉字编码>编码字元栏。
二、《仓易输入法》的框架简介
了解上述前言後,《仓易》设定了以下规矩:「数位九宫、编码字元、部首核心、结构参
造、部首四象、四象叠码、捏形字卦、有形无卦、书写编排、省码情境。」并达成了6507
个汉字无重码的突破。
1.数位九宫:同手写九宫格之概念,所有编码汉字构成不超过六码。也就是一个编码汉字
最多只需输入6次即可完成。并且所有的《仓易》字码最终也都是六码长相。(由於有设
计确认键的关系,《仓易》在使用上不一定都会需要输入到六次。而再不足六码的情况下
,「无」字卦就会将其填充至六码,例如:日「阳嵌无无无无」)
2.编码字元:然而所有汉字不论是否进行编码,我们都可以依其图像符号拆解成若干字元
。而这些挑选过的字元将是构成各种汉字的基石(这些形体不一定跟字义有明确的关系,
但通常来说都具有强烈连结)不消说在不同体系的拆解之下,这些基石字元也各不相同。
而在《仓易》底下它们还具有以下几个特性:
a.在汉字拆解过後,拆解出来的字元依其性质分为部首、部件及结构。另外,在不同的汉
字拆解中就算有相同的字元,它们彼此持有的性质也不一定会一样。(例如:可的「口」
是部首,但柯的「口」是部件)
b.所有字元最多三码(意及最多按三次)
c.所有字元在特定情况下,可能会增码或省码(意及减少/增加输入次数)
3.部首核心:代表《仓易》的所有汉码皆有部首,并且汉字部首字为《仓易》编码的优先
对象。(另外须再次说明的是,《仓易》中部首字不等同部首字元。)而若是该字元担当
某个汉码字的部首时需完整输入其定义的编码,没有增减。
a.在此使用的部首总类为213个传统部首加15个简中部首。其中传统部首是承袭《字汇》
以及《康熙字典》的214部首而来,唯将夊部合并至夂部。
4.结构参造:若数位九宫在省码过程结束後仍保有空间,则需参考一级字源拆分来输入结
构。而当数位九宫被填满或是当中出现结构字卦(也就是确认键)时,表示该汉码输入完
成,应当在萤幕上呈现所该对应的汉字。另外,一级字源拆分是找寻该字的父母,因此追
溯出来的是汉字而不是字元。但在《仓易》作为参照时,是看其相对位置所对应的字元组
合来映射其父母,然後再来判断其结构。以下详述各结构在《仓易》的定义:
a.直行结构:若父母辈仅有两个,且映射的字元组合呈现上下堆叠,则为此。
b.横列结构:若父母辈仅有两个,且映射的字元组合呈现左右摆放,则为此。
c.包围结构:若父母辈大於等於三个,或是其中映射的字元组合至少有两组边长被其
他字元组合完整包围,则为此。
d.嵌套结构:若父母辈即为本身或父母辈是其它汉字(此字本身是讹字或俗字等异写
体)或映射出的字元组合相互沾黏不可分,则为此。
5.部首四象:一般而言汉字中的部首都会形似原本的部首字,但也不乏有部首偏旁长相完
全不一样的时候。而在《仓易》中为了解决此一问题,重整了部首偏旁的范围,让部首可
以用「行列围嵌」的结构特性带出四种长相。具体请参照成果连结的<部首核心>页面查
看。
a.偏旁同胚:倘若该部首偏旁字的书写笔画等同於部首字时,《仓易》暂不解。如:
「亻人」、「灬火」盖因目前理论没有较好的兼容方式,且作者以为这些皆是拓扑同胚,
也应当不用另行构造。
6.四象叠码:由於一个编码部首有四种长相,而这四种长相的字元在字元阶段所拥有的编
码是一模一样的,仅在文字层面上的编码结构(确认键)不同。因此仍不免俗地会有重码
的情况发生,因此在以下情况则需要重复输入。
a.若部首四象中的「行列围」是「嵌」的重复字形(如:炎炏焱就是火的重复字形)
,且该字元在字中是部件,且该字字元构件仅有两组,则该四象字元需重复输入编码。具
体有那些可直接参看结果连结<汉字编码>备注栏中标注叠字的部份。
7.捏形字卦:也就是《仓易》字元实际所需敲击的编码按键,一键一卦即为一码,共计卅
二组(详细可参看结果连结<卅二字卦>)每一组字卦除代表字元外,还有代理字元及辅
形字元。如同拼音字母般,在不同组合下,同字母的发音也不一定会一样,具体音调还是
得看KK音标或国际音标等。因此字卦也不单单仅有一个代表字元。而代理字元及辅形字元
就是针对不同省码情境下可以省码的字元长相。
a.代表字元:除结构字卦及无卦外,其於字卦仅有一组,且一定是汉字部首,也因此部首
四象都是代表。
b.代理字元:除结构字卦及无卦外,其於字卦皆有左右两组,且一定是汉字部首,也因此
部首四象都是代理。
c.辅形字元:除结构字卦及无卦外,其於字卦皆有若干不等的辅形,但不一定是汉字部首
,若是则部首四象皆是辅形。
8.有形无卦:卅二字卦中最特别的当属无卦,这也是所有代理字元必然拥有的编码。其作
用不仅是用来填补数位九宫的空缺,更是字元省码的重要辅佐。基於排列组合的概念,若
是将它放在剩余的27组字卦的左或右时,会被视为不一样的排列顺序。这样的好处是,由
於无卦本身不带有特定的概念,因此省略时不会有负担,但需要时却可以做出区别。
a.左、右代理字元其无卦分别放在该字卦的左右,形式如:左代理字卦:「无卦」、
右代理字卦:「卦无」。并且字卦中的左代理会比右代理的笔画少或是在《康熙字典》的
排序中靠前。而具体各字卦所包含的代表、代理及辅形字元请对应<卅二字卦>以及<部
首核心>查看其编码。
b.另外,无卦只会出现在辅形字元之中,其於字元皆不会出现。
9.书写编排:汉字由於书写为2维平面,各字元的书写先後严格来说并没有必然性。因此
如何转译成有序的线性输入法,各家所用的准则也不尽相同。在此《仓易》采用的方法是
笔画顺序来判断先後出现的字元,也就是当笔画书写到该字元,不论之後该字元有否被写
完,它都会优先出现在编码前面。
a.由於作者出生於台湾,所使用的书写习惯是中华民国教育部所订立的,不确定海外
其他使用汉字的书写习惯。为此若是有书写顺序的出入,《仓易》目前优先参照中华民国
教育部订立的书写顺序为依归。
10.省码情境:在讲完上述各种概念後,最後就是省码情境的应用。诚如一再提到的,汉
字是由字元组成的,因此在开始省码前,优先填上所有原始字元的编码,然後再依循以下
的情境开始做删减,删减完成後若还有空间则再添加结构字卦并填补无卦至六码。
a.代理省码:当代理字元为部件时,省略无卦後依旧大於等於三码(不含结构字卦),则
该字元就可省略无卦,单独用该卦代表。
b.辅行省码:当辅形字元组成为部件时,用单卦表示後依旧大於等於四码(不含结构字卦
),则该字元就可以使用单卦表示。其中省略的字元顺序是由後往前省码。
c.大字省码:当汉码笔画大於六码时,则依结果连结<汉字编码>编码字元栏中括号里的
字元省略。(原先作者以为六格空间理应够放所有汉字,但实际处理依旧发现不少汉字组
成比预想的还要复杂。作者曾想过是否应当扩充数位九宫的大小来保持文字的完整,但细
想却觉得应当分类中文字,让某些中文字属於大字集,好与一般字集作区别。)
三、《仓易输入法》实务操作及安装
在了解上面的规则後,我们来仔细介绍结果连结<汉字编码><部首核心><卅二字卦>
的页面要如何观看。另外,如果想要实际操作看看的,以下连结是字库档。主程式使用的
是《仓颉平台 2022》,字库的替换方式可参见压缩档中的图片说明。
https://drive.google.com/file/d/1450XDgska88_TqkO6DwSDGLOnk_XASWt/view?usp=drive_link
1.汉字编码,页面由左而右的栏位依序是:
a.统一码:也就是Unicode标准,是资讯科技领域的业界标准,其整理编码了世界上大部
分的文字系统,使得电脑能以通用划一的字元集来处理和显示文字。
b.部首(传):参造全字库网站中的部首来分类。(但作者有时为作业方便而直接参看《
康熙字典》的部首分类,若有出入以全字库为准)
c.笔画:参造全字库网站中的笔画。(之所以没有以《康熙字典》为主要经典的原因是,
作者起初并不知道《康熙字典》的笔划是依照部首原型的方式计算。而作者习惯以中华民
国教育部的版本计算,整理到很後期的时候才发现两边的计算方式并不一样。为此为了确
保笔画与部首来源一致,一律依全字库为准。)
d.一级字源拆分:依照小学堂网站、汉典网站当中提供的《说文解字》、《康熙字典》等
文字叙述及图像推得。其中亦不乏有作者知识背景不足而无法辨别的时候(无法确认时,
作者会以括号表示这可能不是这组源头,并用「;」来保留思路。另外「;」左边的会被
用来作为编码结构的判断),以及资讯不足得由作者做猜测的时候(这时该栏会用斜体字
表示)。
e.仓易编码(符):编码完成後,各符号对应当今英文键盘上的标示
f.字形:显示萤幕上,Unicode标准编码所对应的汉字。
g.编码字元:对应该字形所拆解出来的所有字元,其中红粗体字代表该字的部首。其中有
不少部首被作者重新调整过,不一定是全字库网站或《康熙字典》中所使用的分类。因为
作者发现某些部首分类,未必是该字中最适合担任的字元。
h.仓易编码(卦):使用字卦名称排序的编码,其中黑色粗体字代表该字的结构
i.笔画(码):不计结构字卦及之後的无卦,对应到《仓颉(五)》、《郑码输入法》就
是计算确认键前输入多少次。
j备注:关於作者对於此字的一些想法纪录
k.仓颉(五):《仓颉输入法》的第五代版本
l.郑码输入法:《郑码输入法》
2.部首核心:共计227个编码部首及其编码偏旁,其中仓易编码栏位定义了该字元在《仓
易》的标准长相,而形状参考栏位则说明作者如此定义的思路。
3.卅二字卦:关於各卦所包含的代表、代理、辅形以及所对应的键盘符号。另外也揭示了
各卦名称的命名由来。这边也将详述这些名称的命名思路。
a.无极:无极而太极,是阴阳两分前之混沌状态。就像文字书写前就会安排好其空间
然後才会下笔书写。
b.结构:中文书写结构的四种常见的特徵,直行、横列、包围、嵌套。
c.七耀:抽换《仓颉输入法》中的关於「日月金木水火土」的说法,改用中国古人将
岁星(木星)、荧惑(火星)、填星(土星)、太白(金星)、辰星(水星)加上太阳(
日)、太阴(月),合称七曜的称呼。
d.笔画特徵:参考了《五笔输入法》将汉字笔划分为五种,「横、竖、撇、捺、折」
唯将捺(点)的概念换成勾。并将捺与点的概念分别放入「角卦」与「划卦」中。
e.人体:依照汉字中有使用到的人体概念,划分了五种区域,象徵头顶面部的「面卦
」、象徵手掌形象的「掌卦」、象徵脚部形象的「脚卦」、象徵嘴巴范围的「嘴卦」、象
徵躯干身体的「体卦」。
f.形状:依照汉字中楷书书写有使用到的形状,挑选了五个做为代表。看起来像一块
块的「块卦」、看起来像是画框柩的「框卦」、看起来像画线条一样的「线卦」、看起来
像交叉一样的「交卦」、看起来像尖尖角的「角卦」
g.状态:依照汉字中的一些字元状态,挑选了五个做为代表。由点划出发的「划卦」
、像是侧面摆放的「侧卦」、像是盛载一切的「盛卦」、像是并列摆放的「并卦」、像是
舒展大方的「展卦」
四、《仓易输入法》後话及总结
以上说明就是《仓易输入法》的纲要,或许结果页面或输入过程中仍有些许逻辑不合上述
,但那是作者仅一人之力的缘故,无法多次精确校稿的错讹;另外拆解字理或字理还原有
不够学术或严谨的地方也欢迎留言让作者知道。希望这抛砖引玉的动作,能吸引更多的前
辈及爱好者再次关注此一议题。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.36.123.113 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Wrong_spell/M.1687853046.A.B9E.html