§ 3.4 形码典型方案分析
比较是为了区分优劣。既然输入速度、重码率、信息含量等都不能作为编码优劣的衡量标准,那么衡量的标准是什么呢?我们认为标准就在于看这些编码在何种程度上反映了汉字和编码设计的结构规律。尽管各种形码都在不同的侧面接近了这些规律,但对汉字规律的探索毕竟是一个长期的过程。我们拟从众多的形码方案中,选取部分典型方案: 仓颉码、五笔字型、郑码、见字识码、大众码、宏观码、许毕码、王码象形码、表形码 等,加以剖析,扬其长,弃其短,以逼近对编码设计客观规律的进一步认识。
一、 仓颉字母
仓颉字母把汉字部件分为 24类,24个字母分为4个大类:
甲 哲理类 日 月 金 木 水 火 土
乙 笔画类 丿 丶 十 乂 丨 一 亅
丙 人身类 人 心 手 口
丁 字形类 尸 艹 山 女 田 卜
甲、哲理类
字 母 | 产 生 原 则 | 举 例 |
日 | ①日的变形为 | 巴 |
月 | ①取月的外形成冂,冖 ②月的变形为, | 巾,冗 祭,胖,采 |
金 | ①取金的分形丷 ②变化而成八,儿 | 弟 谷,四 |
木 | ①取木的主形 ②由 变化成 | 寸 皮 |
水 | ①取水之左右并重合为又 ②水做偏旁时为氵 | 支 沿 |
火 | ①取火字的上半形为小⺌ ②小变为⺌ ③灬做字尾时的字形 | 肖 紧 热 |
土 | ①土的变形为士 | 任 |
乙、笔画类:
字 母 | 定 义 | 举 例 |
竹 (斜) | ①斜的定义为丿 ②丿的变形成为厂 | 舌 反 |
戈 (点) | ①点的定义为丶 ②点的变形成为厶、广 | 之 公、广 |
十 (交) | ①交的定义为十,而其变形成为宀 | 宋 |
大 (叉) | ①叉的定义为 乂 ②大的部分形成 | 刈 友 |
中 (纵) | ①纵的定义为丨即由上而下 ②变形为丿 ③肀亦为纵向意义相近 | 巾、川 |
一 (横) | ①横的定义为左右向,故工属于辅助字形 ②横下加一撇为变形 | 江 原 |
弓 (钩) | ①钩的定义为亅 ②变形成为 ③再加变化成为 | 了 甬 久 |
丙、人身类:
字 母 | 产 生 原 则 | 举 例 |
人 | ①人的变形为 ②取部分形为 ③偏旁为亻 ④变形为 | 兆 孓 仁 乞 |
心 | ①匕七 皆为心字形变化 ②偏旁作忄 ③字尾作⺗ | 尼、虎、民、句 快 恭 |
手 | ①手之主要字形为 ②变形为、 ③偏旁作扌 | 青、夫 年 拍 |
口 | 无 | |
丁、字形类:
字 母 | 产 生 原 则 | 举 例 |
尸 (侧) | ①侧之定义为向左右开口,所以为 、 匚 ② 、 为变形 | 尹、巨 刀 |
廿 (并) | ①并之定义为两形相并所以为廾 ②变形为、。 | 草 黄、羊 |
山 (仰) | ①仰之定义为向上开口,所以为凵 ②变形为、、屮 | 凶 巴、民 |
女 (纽) | ①纽的定义为曲纽,故为巜 ②变形为 、 | 巢 亡、衣 |
田 (方) | ①方之定义为一方框,内有其它形所以为口 ②变形为 | 国 母 |
卜 (卜) | ①卜的变形为亠、冫、二、卜 ②衤为卜的类似形 | 言、冰 斗、被、非 |
据上所述,仓颉码的主要问题是:
一是分类零乱主观。仓颉码的分数系统是:几万个汉字,由十三个简单的汉字、四个部首、两个笔画结构(十乂)、五个笔画组成。这个系统,是怎样组成的?发明人没有加以任何有依据的说明,使人感到它在设计上是主观的,在结构上是零乱的。例如“十、乂”,并不是笔画,但设计者却把它们摆在笔画类里,这显然是不恰当的;“女”,摆在字形类里也不合适。
七个笔画类,不是笔画的将近三分一,这个类名,即类的定义就难以成立。一个完整的系统,分类和命名上的客观性和科学性是很重要的。
二是取形混乱,例如哲理类有七个小类,其中有五个类的取形就有五样:
取月的外形成冂、冖;取金的分形丷,丷的变化而成八、儿;取木的主形 ;取水之左右并重合为又;取火的上半形为小。月取外形;金取分形;木取主形;水取左右并重合;火取上半形。每取一个形,即多了一个记忆单元,取与不取,没有什么不同,不如干脆规定几个就作为这个类方便。有了一个“取”字,设计者的意思是使它们之间有联系,但这个联系很勉强,不是唯一的。因为,规定取外形,就要撇开内形;规定取上形,就要撇开下形。这就无形中增加了记忆负担。
三是字母定义的随意变形。仓颉码依据二十四个字母联系形和义,又产生了如个小类。我们可以从上面的字母表中看出它的随意性来:
斜的定义为丿 丿的变形为厂
点的定义为丶 丶的变形为厶、广
交的定义的十 而其变形为宀
纵的定义为丨 即由上而下 变形为丿 肀亦为纵向意义相近
横的定义为左右向,故工属于辅助字形,横下加一撇为变形。
钩的定义为亅,变形成为,再加变化成为 。
从以上例子可以看出:由“丿”变为“厂”,即加上一横,如果这个“丿”加出头了,就会成为“”,但偏偏又不出头,与第五类“横下加一撇的‘原’”字头并没有区别。
“丶”变为“广”,由“十”变为“宀”,实在说不通,根本无法解释。“丶”是任何一个笔形的始点,变为某个笔形,或许可以解释,设计者却使它变为“广”。“十”,如果说变为“”,也会讲得通;说“冖”变为“宀”,可以说得过去,因为,两者的命名,一为“秃宝盖”,一为“宝盖”,“盖子”上多了一点。说是由“丶”变过来的,却讲不通了。
“丨”(纵)的变形为“丿”,与撇笔的形象一致。一个相同的形象分为两类,在分类学上是难以接受的。
这些“变形”,都是十分随意的,不合情理的。每个类有个定义是必要的,定义准确就毋须解释。但如何变形,是需要解释的。例如说“丶(点)”的变形为“ (捺)”,如“木”的末笔在字中或字右,均为捺笔,若作为左边旁,则变形为点笔。必须这样解释,不能没有依据。尽管有个别的字母其“变形”是可以说得过去的,例如“日”的变形为“ ”;人的变形为“亻、”,但这是极少数。卜的变形为“亠”,还可以说得过去,但再变为“冫、二”,就无法解释了。所谓“变形”的本意,也是为了增加相互联系,减轻记忆负担,但需要讲得通。现在讲不通,不能帮助理解,也说明这种解释是主观的,牵强的,不科学的,不仅不能减轻记忆负担,还起了反作用。
四是取码主观随意。分类系统的主观性、随意性,必然导致拆分取码上的主观性和随意性。仓颉码有许多字要一个一个规定,例如:
正确取码 错误取码
王 一 土 一 十 一
容 十金人口 戈月金人口
羊 艹 手 金一手
九 大 山 大弓山
乍 竹 尸 人卜卜
屯 心 山 十山山
言 卜一一口 戈一一一口
非 中一卜卜卜 中一中一一
这样一个字一个字记忆,需要多少记忆量?
五是无理映射记忆困难。仓颉码二十四个类代表通过“变形”或某种随意的解释,再产生 1~4个字母。由于字母数量太少,结构简单,造成取码(即分解)的困难。例如:
妻 —— 十中女
商 —— 卜金月口
雨 —— 一中月卜
函 —— 弓山水
求 —— 戈十水
乘 —— 竹木中心
舟 —— 竹月卜戈
焉 —— 一卜中火
这些规定教人难以理解,而且每一个字都要如此规定,记忆实在太困难。
仓颉码 24小类安排在键符上,这种映射方法是任意的,无理的,记忆难度太大。
台湾的电脑科技和生产发展较快,一起始就进入字根码的使用,人们一般很难发现汉字编码的发展轨迹。也许设计者朱邦复先生已经知道一个设计方案,只不过是纸上文章,并不那么值钱,他干脆让人家无偿使用。后来即使有人设计了好一点的方案,想从中赚钱,用户自然不愿意拿钱买,也就无法替换它。汉字编码作为一种基础设计,是要加上软硬件技术才可作为商品走上市场。软硬件成为编码方案的主要支柱后,产生很大的稳固性。如果另一种设计方案在技术上、经济上、主观能力上不具有压倒性优势,就无法立足。编码方案仅是纸上文章,与已经占领市场的方案比高低,就好比秀才造反,光靠嘴巴,永远不能成功。仓颉码在台湾能稳稳保住主导地位,其原因就在于此。
二、 五笔字型
五笔字型首先通过对字根的使用频度与组字频度的统计,挑选了 199个(设计者宣布为125个,故意压缩数字,引人上钩,是一种商业手段,表现它的非科学性)基本字根作为建立方案的基本材料。所用的字根是汉字中独立的结构“块”,不是通过主观任意的“变形”来产生的。虽然数量比仓颉码多,但是学习者分解汉字要比仓颉码方便。字根的产生是通过使用频度和组字频度统计得到的,(虽然是“优选”的,总比乱“变形”的好)也比仓颉字母有依据。
五笔字型利用 1-5个数目字对应横、竖、撇、捺、折五个笔形,再把键盘上的英文字母键符,划为五区五位,选用一些使用频度高的部件(称基本字根),根据这些部件的第一、二笔的对应数字代号,分配到相应的键符上。如下:
一 丨 丿
1 2 3 4 5
“五笔字型”字根键盘图 (略)
从这个表里看出,尽管五笔字型的设计者事先规定用字根的第一个笔画的笔形代码数字作为该字根应分到的“区”,第二个笔画笔形代码数字作为该字根的“位”,但具体的安排差异很大,只有不到50%的字根符合设计方法。即是说,有50%以上的字根是无理安排的。原因是按字根的起首两个笔形为区、位的安排方法并不符合实用要求。因为,字根的起笔以横竖为多,点(捺)折为少,这样的安排使字根的键位分配极不均匀。例如以点(或捺)为区,以竖、撇、折为位的字根,就很难找得到。这些键位就成为空位。许多字根以横为区,横或竖为位的很多。这些地方就会“根满为患”。为了使每个键位上都能分配到一些字根,有的不能死板地按区、位安排,只能无理地安排在这些空位上。这种以无理化作为代价是为了使每个键位得到“合理分配”,以换取降低重码率。可以认为,由于把键盘上的26个英文字母键符,分为五区五位的设计安排在实践中碰到了困难,设计者只得服从现实,不得不进行修改。实践证明了这种设计方法的不成熟性。
五笔字型利用数字的序(1.2.3.4.5)与笔形的序(横、竖、撇、点、折)对应,又把键盘上的26个字母,划为五个区五个位方式(即有理化),设计考虑仍然离不开“笔形——数字”这样一种转换方式,在部件与键符的转换关系上,比笔形码又多了一道“手续”。这道“手续”在人的脑子里使字根与键符的对应,多拐了一道弯。笔形码是直接采用数字键的,五笔字型则是用数字换区位,区位再换拉丁字母键,间接加间接的转换。已经学会英文打字的人,还不能直接打字,得重新记忆区位。示意式如下:
笔 形 码 字根-笔画-数字(键符)
五笔字型 字根-笔画-数字-区位-键符字母
五笔字型方案除了间接加间接的转换毛病外,还有几个主要缺陷:
(一)在设计思想上忽视汉字的整体性,没有认识到选用少数基本字根涵盖全部汉字是很困难的。因为,它的设计根本在键盘上,只考虑键盘安排,不考虑设计原则。所以,进入实用时觉得不顺手,就随意修改事先的规定。但为了使人觉得它的易学和“科学”,还是“照本宣科”。这种实用主义手段,作为商业行为为可以的,但作为科学行为却是不应该的。在中文电脑应用的专业时期,人们考虑的是技术性能,因此,商业手段可以行得通。因为,学的人是一些寻找职业的年轻人,记忆力好,多花一些时间学习也不要紧。但中老年就大不相同。由于文字使用和软硬件在社会上的稳固性,在中文电脑全面普及的时期,社会需要一种易学、符合汉字自身规律的编码,而五笔字型的市场占领就会起很大的反作用。因为,它的社会使用惯性影响计算机应用向全社会展开,阻碍计算机全面普及,阻碍我国信息化的进程。
(二)对部件的客观性缺乏认识,认为汉字的字根(部件)没有客观标准,只能靠设计人“精心筛选”。王永民认为:“什么算构件(即字根),什么不算,构件选多大合适,都因人而异,这里的根据是设计的需要。”“字根并不像汉字那样,有公认的标准和一定的数量。”这样的理论,必然导致编码方案的无限制的花样翻新。字根没有“公认的标准和一定的数量”,设计者要多大就多大,要多少就多少,实质是说,设计编码不需要给它的基本材料定性定量。这样的主张,实质是背离设计学的基本原理和原则。
(三)“精心筛选”的字根不能套拆全部汉字,有的汉字便只能一个一个地主观决定,增加记忆负担。
(四)由于以上原因,基本字根就不可能排成一个体系严密的、完整的、统一的系统。例如王码有一句助记词:“王旁青头兼五一”,即是说,把“王、、戋、五、一”都安排在1区1位。让我们想想,这“王、、戋、五、一”五个字根之间,存在着什么样的联系呢?设计者也许会说:“它们的起首都是两个横笔。”其一、“五”的第二个笔画不是横笔;其二、还有很多字根起首两个笔画都是横笔的却没有安排到这个位置上。后来的版本对一些键位上的字根进行了调整,例如1区1位安排了“干、戋、王、夫、千”。“千”的头上是一撇,第二笔是横,本来应放到3区1位才对。如果我们认真检查它的八个版本,就会发觉,无论如何调整,都没有办法增加它的有理成分。
(五)由于拆分的主观决定,必然背离汉字规范,损害识字教育。例如下面一些字的拆法:
那 拆分为 刀二阝 面 拆分为 厂冂 三
曲 拆分为 冂 身 拆分为 丿 三丿
击 拆分为 二丨山 其 拆分为 艹三八
乐 拆分为 小 拜 拆分为 三十
不要说这些拆分方法在记忆上的难度,它在中小学语文识字教育上的不规范性使人无法接受。
(六)由于它对汉字字根的规范性认识不足,以致对许多汉字的拆分,采用基本字根代替的方法。如:
东 七小 派 氵厂 丑 土 不 一小
母 一 凸 丨一几一 聚 耳又丿水 凹 几冂一
段 亻三几又 舆 亻二车 二一八
这样的字很多,如果中小学生们都这样去学习汉字,那么,头脑里就会经常打架。
(七)为了减少重码,五笔字型采用了“末笔识别码”。但是,这种末笔有许多是设计者自己规定的,不是国家规定的。就是说,这种末笔是损害国家书写统一规范的。例如根据设计者规定:
“国”的末笔为“丶”
“远”的末笔为“乚”
“刀”的末笔为“”
“力”的末笔为“”
“九”的末笔为“⺄”
“匕”的末笔为“乚”
“必”的末笔为“丿”
“乘”的末笔为“乚”
“戈”的末笔为“丿”
这些末笔规定都违反了国家的标准规范。
(八)除末笔识别码外,五笔字型的汉字拆分仍然有许多地方不符合国家的语言文字规范,例如:
“冒”应拆为“冂二”,但五笔字型却拆为“曰目”,“帽、瑁、冕”等均错。
“象”,中间是“ ”,五笔字型拆为“ ”(称横日),“像、蟓、橡”等均错。
“麸”,“”下面是“夂”,五笔字型却作“夕”。
“北”的左旁是竖起笔,五笔字型拆为“丬”,成了点起笔,所以,“背、褙、邶、乖、乘、剩、嵊、冀、骥、燕”等都拆错了。
“非”的首笔是中间一竖,再写左边三横 ,按国家规定应拆为“丨丨三三”,五笔字型却拆为“三丨丨三”。
“燕”按规定应拆为“廿口北灬”,“口”先于“北”,五笔字型却是“北”先于“口”。
总之,笔顺、形象错拆的很多,例如“母、毋、幽、丑、凹、凸、官、敝、及、貌、里”等都拆错了。而且,由于这些字又可作为偏旁,拼出另一些字,因此,一个拆错,累及一批。“本节资料,得自云南大学张在云副教授的研究)。
五笔字型是数码字根码的典型代表,尽管已有上述八大缺陷,但比之仓颉字母,它所用的基本材料增加了,分解汉字更方便。仓颉码虽然只用了83个字母,但它的“变形”“取”字母,都是很随意的,没有任何依据。五笔字型用的199个基本字根,毕竟还有个使用频度和组字频度作为依据。尽管这种依据并不十分科学,有总比没有好。因此,记忆量相对减少了。说明它在设计上比仓颉码有一定的进展。
三、郑码“ ZN”电脑汉字26键拆根编码方案(以下简称郑码)
实践经验证明,利用数目字代表字根的笔形或某些简单的结构,再将其转换为键盘符号的做法,并没有给一般人的记忆带来很多的好处,反而增加了拆分上的麻烦,是得不偿失的工作。但是有的设计者还是觉得笔形多少总有一点用处,不愿意全部丢掉,郑码的设计思想基础可以作为这方面的代表:
郑码选用了182个基本字根,外加21个笔画作为编码方案的基本单元。把182个基本字根分为50个主根和132个副根。这182个主根和副根又根据起笔笔形分为横、竖、撇、点、折五个区,每个区中含有3——8个类不等。每个类中根据安排的顺序取得一个英文键符为代码。每类中有1——2个主根,其他的为副根。 50个筛选出来的字根,按笔形分为5类,根据起笔分别安排如下:
横起笔类:
根区代码 | 主 根 | 副 根 | 基根笔形特征 |
A(一) | 一 | 丁 | 一横的基根 |
B(地) | 土二 | (者)走工示 | 含“土”和二横的基根 |
C(现) | 王三 | (春)丰耒耳 | 三横和多横的基根 |
D(的) | 扌 | 寸 | 起笔横 -竖钩的基根 |
E(世) | 艹十 | 廿甘其革 | 起笔横 -竖、横-竖-竖的基根 |
F(要) | 木酉 | 西甫雨 | 起笔横 -竖-撇、横-竖-折的基根 |
G(在) | 石大 | 厂辰不而页豕尤龙 | 起笔横 -撇的基根 |
H(成) | 匚(臣)七 | 弋戈(戊)车牙至 | 起笔横 -折的基根 |
竖起笔类:
根区代码 | 主 根 | 副 根 | 基根笔形特征 |
I(上) | 虫() | (虎)止齿 | 起笔竖 -横的基根和虫 |
J(中) | 口囗 | 足 | 含有“口”的基根 |
K(是) | 日刂 | 非业小水田(由甲申) | 含有“日”和起笔竖 -竖、竖-撇的基根 |
L(用) | 目冂(同) | 巾山(皿)且贝见骨 | “目”、“”和含“冂”的基根 |
撇起笔类:
根区代码 | 主 根 | 副 根 | 基根笔形特征 |
M(我) | | 气毛牛生千禾 | 起笔撇 -横的基根 |
N(他) | 亻川() | 臼鬼佳片白自身 | 起笔撇 -竖的基根 |
O(个) | 八人 | 义食(饣)彳(行) | 起笔两撇和起笔撇 -捺的基根 |
P(所) | | 爪瓜舟 豸 | 起笔三撇、撇 -撇、撇-捺点的基根 |
Q(月) | 月几 | 殳九犭 | 起笔撇 -弯(长弯形)的基根 |
R(多) | 鱼()儿 | 夕勹(包)欠鸟匕氏 | 起笔撇 -弯和撇-拐的基根 |
点起笔类:
根区代码 | 主 根 | 副 根 | 基根笔形特征 |
S(说) | 言(讠) | 亦文立辛方亡 | 起笔点 -横的基根 |
T(度) | 疒(病)冫 | 门广鹿丬 | 起笔点 -横-撇,点-竖,竖两点的基根 |
U(为) | 忄 | 半羊米火(灬) | 起笔点 -点-竖和起笔两横两点的基根 |
V(没) | 氵 | | 起笔竖三点和起笔横三点的基根 |
W(这) | 辶(之)宀 | 户冖穴礻衤心 | 起笔点 -折和点-点-折的基根 |
折起笔类:
根区代码 | 主 根 | 副 根 | 基根笔形特征 |
X(对) | 马 | 尸彐艮又皮 | 起笔折(单弯)的基根 |
Y(了) | 阝(卩)刀乙 | 力也习子已(己巳)弓 | |
Z(发) | 纟巛( ) | 凵女厶母 | 起笔单拐和先拐后弯的基根 |
| | | | |
五笔字型根据采用(优选)字根的第一、二笔分作五区五位分别安排,而郑码先用第一个笔画将字根分类,但排除了平均的数字分配法,而是将最多的横起笔字根分给从A起到H止八个代码类,竖起笔的则分给“I——L”四个类,撇起笔的分给“M——R”六个类,点起笔的分给“S——W”五个类,折起笔的分给“X——Z”三个类。起笔按基本笔画顺序,分配按英文字母顺序,打破了固定的五个数字区的局限。因为,字根的第一个笔画笔形以横居多,无法平均分配。五笔字型的教训是平均分配不成,只好无理安排。郑码的第二步想再按第二个笔画的笔形,从“横——折”来分小类,但看来字根的第二个笔画已无法按这个如意算盘打了。只能无理而直接地安排到键符上,我们看表上的“基根笔形特征”这个栏目,就可知道这些所谓“特征”并没有形成统一的规律。例如“D”类是“起笔横–竖钩的基根”。这四个类的第二个笔画,或加上第三个笔画,相互间并没有什么承继的规律可言。其意思当然很明显是指这几个类的第一个笔画都已经是“横”,第二个笔画的笔形变化仍然按“横、竖、撇、点、折”来安排,所以,设计者认为这里也是“很有规律的”。我们之所以讲规律,是希望尽可能地减少记忆量。但实际象郑码这样的安排,并没有任何一点有减少记忆量的地方,例如在“Y”类(阝(卩)刀乙力也习子已(己巳)弓)条下谓:“起笔复弯和先弯后拐的基根及有两个弯的‘了、子’和有弯有拐的‘己、弓’”。这一类是多么复杂、难记!这里所谓的“很有规律”实际是主观想象的,与五笔字型相比,“五笔”分区、分位,分得细,但是要拐上一个数字的弯,与键符的关系是间接的、有理的;郑码只用第一个笔画分字根为五类,第二步就直接对应了,少了一道数字转换,字根与键符的关系是直接的,但其方法,却从有理转向无理了。本来应该说,这样做,记忆量比“五笔”要有所减少,实用性能应有一些提高,但郑码取码随意性强,反而增加了记忆难度。
郑码的缺陷是:
(一)郑码构码的基本单元字根也没有明确的定义,在分类时又产生许多新名称如:主根、副根、一般根、包杂根、重叠根、夹心根等,但都没有交代有多少,由于需要在映射时有不同的处理,不交代清楚,人们会不知所以。这些“根”,在国标二级汉字库的6763个汉字中,到底有多少,哪些算,哪些不算,学的人不明确,需要交代。不交代清楚,让学习的人自己捉摸、推导,是搞不出来的。例如郑码认为学习的人看到“厂、戊”,就会联想到一定是属于“石”类,即把“石”看作“包”,那为什么不能把“月、疒”也看作“包”呢?显然是很难自圆其说的。
(二)与五笔字型相比,郑码已经甩掉了使用笔画——数字的键位安排方法,但舍不得丢掉笔画,想从笔画中找出部件分类的客观规律来,其实是不可能的。因为笔画与字根的构形方法,没有任何可联系。我们从这个分类系统中就可以看出:在起笔一类中,从“一——女”,以A至H作为代码,其中任何两类都可以互相置换,就可以说明它的无理性。这个分类系统是不科学的。因为,它离开字形的结构特性,背离汉字的造字方法。
(三)郑码认为:“一般汉字编码把所选定的许许多字根杂拼乱凑地分别罗列到电脑键面上无一定科学体系。”因此采用字根的起笔作为分类的依据。然而,用笔形给字根分类,笔形类少,字根类多,一百多个字根挤在五个笔形类中,而且以横起笔的有八个类首先占了一大块,以折起笔的只分到三个类,畸轻畸重,分类的作用得不到发挥,这无异于画圈自锢。
(四)郑码提出了“电脑汉字”的概念是不明确的。“电脑汉字”的实质是为编码设计的键盘本位创造理论基础。如果说有电脑汉字,那么是否还有非电脑汉字?这个概念,混淆了电脑与汉字的不同性质。电脑只是书写汉字的工具。因此它只能与毛笔汉字、铅笔(钢笔)汉字等并列。就是说,“电脑汉字”这个概念没有深邃的内涵。
(五)郑码提出了“形近根”的概念是无视汉字规范的。形近根是指一些汉字中存在与郑码“优选”的主、副根形状近似一些一般根,这些字根就采用“形近”的主副根来套拆。例如“帝”,根据郑码拆法,应拆为“亠、、冖、巾”,但字根表里只有“言(讠)、亦、文、立、辛、方”等几个与“亠”所谓“形近”,就以此替代。此类所有字根,都有两个以上笔画;又如将“珊”拆为“王、冂、冂、一”,“ 冂”以“月”代。这个替代,还不如以“冂”好,至少,它们的笔画是一样多,形状、方向都一样,“月”的外壳虽然一样,但里面多了两个笔画。又以“髟”代“镸”,以“斤”代“丘”,以“臼” 代“”,以大代小,以小代大,非常随意。因为替代法有很强的二义性,必须逐个规定,逐个讲解,逐个记忆,使许多字拆分时令人莫明其妙,例如将“”拆为“冂、三”,毫无道理,实在有碍汉字规范,决不应在教学中使用。我们在第一章里已经把文字的定义讲明了。作为文字中的汉字,它以它的笔形、笔画数、方向、结构来表达信息,不允许进行随意的改变,这就是规范。
(六)郑码的映射方法更令人难解。第二主根和副根,一个字根,除区码(即类代码)外,还可以再取一位码,作“预备役”,一般情况不使用。如拆分后,设计者不满意某些字根的代码,就可不选用,而选某位码替代。例如“赛”,拆分为“宀、、八、贝”,代码为“宀(WD)、(EB)、八(O)、贝(LO)”,取码却是“WDOL”,“”的代码被无形之中剔除了。至于为什么要剔除,为什么要用第一个字根的位码来补充,没有明确的解释。据释,设位码可减少重码率,但却增加取码的随意性,增加记忆的难度,一点也不合算。因为,重码是静态的,使用是动态的。这等于减少静态不供使用的纸面重码,增加使用时取码的困难。
四、见字识码
张普先生认为笔形编码之所以不如字根编码,是因为笔形编码背离汉字的造字历史和造字方法;字根编码之所以取代笔形编码,是因为字根编码符合汉字的造字历史和造字方法。这个诊断无疑同样适用于以笔形作为字根分类基础的一些编码方案。既然实践已经证明用笔形作为映射代码手段的笔形码违反人们识字教育中的认知心理,那么,从字根中抽取笔形作为分区分类的方法也必然不可避免的违背人们的认知心理。因为,从整字或字根中抽取笔画,而且这种方法的间接性都是不利整体认知的。人们之所以觉得难学难记都源于此。
部件(支码称字根为字元)分类是字根编码方案的一道难题,许多设计者想绕过它,把注意力放在部件与键符的直接交换上,丢掉笔画搞直接对应(映射)。
在输入的方式上,字根能直接转换为键符的,称直接对应(映射)。部件要以数字为代表才能与键符进行转换的,称间接对应(映射,下略)。如下式:
字根(字元)——键符(直接对应)
字根(字元)——数字——键符(间接对应)
上面已经提到,间接输入虽然使汉字有了序性,查码本时有一些方便,但真正使用时,仍然需要死记硬背的。
字根如何直接转换为键盘符号,成为编码方案设计人追逐的目标,支秉彝先生设计的见字识码方案,利用字根的字音与键符进行直接的、有理的转换,其方法如下:
汉字 拆 分
路 —— 口 止 文 口
(键符) K Z W K
这种方法如果都能顺利解决每个汉字的输入问题,我们下面的编码就都不需要了。且不说在“见字识码”中已确定的字根有多少,即便是已确定的字根,许多是没有读音的,需要给它们造一个音,这个造起来的音是很难记的。他还规定:“(1)一个汉字尽可能依其拓扑结构拆成四个字元组成的字元串。”从这一条就可看出支码在拆分规则上存在着严重的多义性。还有许多拆分规则,都带着同样的性质,如:(3)前一元与后一笔若能连续以形成另一字元,则必须连下去,直至四笔或自然断开为止。 (4)多于四个字元的字,用“前并后拆”的方法,捡取四个字元。”可想而知,支码是无法拿出一张完整的字元表的。但是,支码在字根编码发展的历程上,率先建立一套汉字拆分(实际是取码规则)规则,为后继者开辟出一条新的思路。
见字识码设计出在五笔字型之前,该码还没有考虑字元(即字根)的定量与分类,因此,字元(字根)没有了分类,也没有固的数量。见字拆字,比之五笔字型和郑码,自然要落后。后来的许多形音码,对这些缺点作了改进,但由于根本问题未解决,使人感到形音码是一种“非驴非马”的东西。
这里不再一一枚举。
五、大众码
陈代宇先生的大众码,也舍弃了数字转换,让字根直接与键符见面。他想出了一个巧妙的办法,把每个键符上安排的字根,集中为一个庞大的生造(随意造出来的)字,记住这个字和被安排的键符,就可进行输入,其方法如下:
从大从码的键盘布局中我们看到:
在Q键上安排了 艹 亠廾
在W键上安排了 火勹大
在E键上安排了 讠习子止
大从码的键盘布局(略)
这样的安排,拆开来看是很杂乱的,设计者说不出这样分类的理由。但由于经过了巧妙的拼合,组成了一个虽然不认识却布局匀称的生造字。利用汉字拼形造字方法,符合中国人的认字习惯和认知心里,减轻了一些记忆负担。不过,这种安排仍然无规律可言,它们之中的任何两类都可以互相置换代码而不须任何理由。其中的字根也可以置换,另凑别样的生造字,因此,它还是无理的,主观的,还需要很多的记忆明处。正如郑易里先生所说的“杂拼乱凑地分别罗列到电脑键盘面上。”但是大众码的记忆量,比五笔字型第少得多。五笔字型字根与键位的关系虽然是有理的,但却是间接的,从应用的角度来看,这种有理化对记忆只增加麻烦,并无任何好处。因为,使用数字转换键位,区位反而多了一道手续。
大众码的“生造字”对记忆来说,是有帮助的,这确是有独创性的。但是,它也“生造”了许多不规范的部件(字元)。如“ 、 、 、 、 、 、 、 ……”等,这种“生造”的部件(字元)。实在令人咋舌,例如为了使“戈”类字便于拆分,设计者确实挖空心思,“生造”了一个“ ”,胆子实在大等很,可惜“突破”的是历史形成的认知规律。这样的部件,任何一个教育工作者都是不愿意接受的。问题在于设计者局限于实践,没有认真地进行理论探讨。陈代于先生后来开始理解“部件不灭,硬拆棘手”,必须寻找理论指导,寻找明码明确的部件定义,他说:“有了汉字部件的定义,汉字拆分规则自然就是:从部件的边界拆开。”“汉字部件的定义规定的是汉字中什么地方不能拆开。实际上,部件定义和汉字拆分规则是同一个问题的正反面。定义了什么地方不拆,就等于定义了什么地方要拆。”⒂
当然,作为初期的探讨式的方案,大众码无疑是作出了贡献的。
六、汉字宏观编码
宏观编码也是优选171个字根(部件)作为编码方案的基本材料。分为38个类。该方案对字根的构形特征归类作了初步的尝试:例如:
自 白 目 且 其 耳 页 贝 见(安排在“I”键上)
门 冂 冂 凵 匚 (安排在“L”键上)
亻 彳 人 八(安排在“E”键上)
但是,由于缺乏字根构形的系统构思,这些分类符合设想的仅只有少数几个类别,大多数仍然是“杂拼乱凑”的。如:
尢 兀 儿 廿 艹 (安排在“R”键上)
丁 万 寸 勹 气(安排在“[”键上)
月 舟 母 身 弓(安排在“C”键上)
所谓系统构思是指这171个字根的系统,首先有一个整体的设计描绘,然后再进行分小类;每一个小类的定义,必须与整体描绘的方法一致,才能使体系完整。尽管如此,宏观编码还是比其他编码前进了一大步。因为,从在五笔字型、郑码、见字识码、大众码诸方案中我们可以看出,有理安排与直接对应无法彼此融合,要有理化,就要间接对应;要直接对应就得无理化。毛病出在分类系统上。
宏观码的分类系统把字根的类别与键符的关系分为两个各自“相互独立”的部分,不受键符安排的约束。“相对独立”是指这些小类可以自由寻找与它自身相似的“对象”安排自己。从而使直接对应和有理安排能够同时实现。这只是宏观码设计的启发,而其本身却同样囿于直接对应、无理安排的境况之中。因为,构筑宏观码的基础171个部件,也是主观优选出来的。请看宏观码的键盘分类。
汉字宏观字形编码(钱码)键位图 (略)
代 码 | 笔形名称 | 笔形特征 | 同 类 笔 形 |
1 | 横 | → | 一 |
2 | | ↓ | 丨 |
3 | 撇 | ↙ | 丿 |
4 | 点(捺) | ↘ | 丶 |
5 | 左 折 | | 了 亅 |
6 | 右 折 | | 乚 乙 < |
宏观编码使汉字的字形编码有了进一步的发展,尤其在编码方法的基础理论方面,它作出的贡献是勿容置疑的:
(一)明确指出汉字的宏观性和模糊性。钱伟长先生说:“人们在书写辨认汉字时,首先考虑的是关于该字的结构模型,当他在辨析一个汉字时,并不需要精确地分解每一个笔画,而是近似地、甚至是模糊地从字形结构角度来捕捉字形的特征。……人的识字心理活动规律证明了由于人们通常在记忆中所保持的字形是一种模糊映象,多属字的外围轮廓部分(特别是边角突出部分),能反映其字形结构特征;所忽略甚至遗忘的往往是字的中间部分。……这也说明了在汉字中笔画的冗余量是很高的,即使是省略了汉字的某些笔画,人们还是能够正确的辨认出该汉字。”这种宏观理论,为表形码的模糊集合奠定了基础。
(二)对部件作出了定义。为部件结构分析打开了思路,他说:“作为方块汉字的单元是由若干彼此分拼合而成的,这些相对独立的笔画结构块,称为部件。部件又由一些更基本的单元组成”。(15)表形码就是通过对“笔画结构”和“块”概念的出现,是汉字编码发展的一个里程碑。陈爱文的《汉字编码的理论与实践》,对“笔画结构”和“块”进行了详细的解释,“彼此分隔”和“相对独立”两个动静相兼的形容词恰好作成了部件的两个属性。使部件的划分,有了明确的界限。
宏观编码关键性的贡献是提出了“笔画结构”和“块”的新概念。这两个新概念使部件完全摆脱了字音和字义,正正式式地宣布字形的“独立”,奠定了字根码向部件码突破的基础。凡是由两个以上笔画构成是基本结构,称为“块”;“块”在汉字中是“相对独立”的。任何汉字中“相对独立”的“块”,都是由“笔画结构”构成的。因此,它使汉字的部件形成了一个完全独立的(即离开字音和字义)、相互联系的、整体的分类系统。
七、许毕码和王码象形码
葛遂元先生设计的与宏观码类似的许毕码,共选用部件216个,也采用了形象相似集合与对应(映射)的方法。例如:
用“ 0”作为“口”的代码;把“、、匚、七、匕、、”归为一类,并以“7”作代码;把“凵、冂、门、、巾、、、”归为一类,代码用“U”。
此码的贡献在于不仅采用形象相似性的归类(即模糊集合),同时以形象相似取代码的方法,以此减轻记忆负担。但是,该码设计的基础——216个部件,仍属主观选用,仍然不能完全分解全部汉字,有的字必然需要逐个解释拆分;没有部件定义,故没有办法归纳出拆分规则,导致部件选用的随意性,例如“夷、长、央”都少了捺笔;“凹、凸、曲、西”都少了底边,其原因是为了取这个笔画作为另一个码元。这样随意取用,造成了部件的不规范性,是得不偿失的。这种取部件的方法,不易为人们所接受。尽管该方案以形象相似的归类,由于没有类的定义,类中的部件,相互间仍然没有办法联系,即是说,它们没有统一的特征,无法构成一致的形象(就象数学中的公约数)。与许毕码相似的方案,在台湾也有王尧世先生设计的王码象形码也更巧妙。见下图(略):
这种编码与分类方法与表形码极其相似。除个别部件类采用谐音的方法外,如“衤(E)、纟(S)、宀(G,读音宝盖)”,绝大多数用形象对应。
王码象形码开始了使用数字形象与字根对应的方法,例如用“一”与“1”、“二”与“2”、“三”与“3”、“四、目”与“4”等等,“匚”与“C”、“艹、、、口、贝、子”与“H、K、E、O、R、Z”等相互对应,创造了“部件——代码(即键符)”形象直接映射法。
上述两个编码有一个共同点是利用形象相似来集合部件,同时,运用部件的结构形象映射代码,用以彻底摆脱认为只有“笔画——数字”才能映射的魔影。即是说,每一个类的定义就是键符的形象特征,每一个类的代码,就是与这个原价相似的英文字母。以前那些编码方案,每个具体的类定义无法“独立”。现在是为特征选择“对象”,那个象就选那个。表形码以笔画结构为纲,下辖型,由型分类,然后根据形象特征,寻找合适的代码。把钱码的部件定义和王码象形码、许毕码的特征归类和映射统统连在一起,只有这样,使分类的作用得到充分的发挥,又构成了系统内在的稳固性。
八、字根码的突破与表形码
郭治方先生指出,字根码与部件码的不同有二:一是字根码中字根的数量是“优选”的;部件码中的部件是全部入选的。二是字根码中的字根定义是主观的;部件码中部件的定义是有依据的。如果再把这个比较讲得详细一点:部件码的分类依据是从定义里产生的;字根码的分类依据是主观设定的。部件码的型和类都有明确的定义;字根码没有明确的型和类。部件码是由类产生代码的,因此,在部件码里,“类”是相对独立的;字根码是由代码产生类的,因此,在字根码里,“类”与代码(即映射过程)是混淆的。部件码的映射是有理的;字根码的映射是无理的。部件码以汉字规律为中心;字根码以键盘应用为中心。
作为建立一个编码方案的基本材料——字根,由于没有一个确切的定义,而暴露了它的最大缺陷——字根无法定量。一个方案,要使用多少个字根,设计者可以主观“优选”。“优选”,造成了汉字拆分(套拆)的难题。一个字符集的汉字,不能被“优选”的字根完全分解。设计者只能自己决定某些汉字的拆分。这些汉字的拆分,就陷入了主观的泥沼。
回顾以上字根码设计发展的经验,我们的基本认识是:
(一)作为汉字的基本单元——部件,必须有个比较准确的定义。它既要符合汉字的造字历史和造字方法,又要成为导引拆分、定量、分类方法的基础。
(二)部件作为汉字的基本单元,它对汉字的代表性必须是全汉字的,因此,不能靠主观的“优选”,必须“全选”,必须是客观的,即要按照部件定义的规定拆出来的。只有“全选”,才能反映汉字字形的全部信息。
(三)部件的分类必须遵循其自身的规律,而不应该是外加的。只有依靠部件自身的规律,部件的分类才能构成一个完整的整体的分类系统。
(四)部件的拆分必须符合汉字的造字规律,适合中国人几千年的认字习惯和认知心理。
(五)部件的键符安排必须是直接的,有理的,能最大限度地减少我们学习时的记忆负担。
1987年陈爱文先生著《汉字字形学和表形符号编码》,在汉字字形结构研究的基础上创制了表形码,使汉字字形编码方案的设计产生了一次棋高一着的新跨越,使汉字编码的设计考虑,从单纯的键盘应用,进入了宏观的文字使用的范畴,在否定键盘本位的设计思想的同时,也为汉字编码的汉字本位提出了立足的依据。他说:“电脑既然要成为全民使用的工具,它必然要求普及,必然要求廉价。键盘输入永远是第一位,不是手写输入和语音输入可以代替得了的。汉字编码是汉字的一种存在形式。它把方块形式的汉字变成线性形式,而且具有序性。”这里他指明了电脑中文应用的方向和前景,方法和要求,指明键盘打字必然在一个很长的时期里为全民普遍使用。
对汉字字形编码本质的认识和分析,必然导致对汉字字形编码方案的设计的高要求和高标准。
表形码在归纳了所有字根编码的缺陷后,在它们的基础上开始了新的突破。使字根码进入了部件码阶段。我们认为表形码的特点和贡献有四:
(一)有比较明确的部件定义,因此,从汉字中拆出部件就有了依据;
(二)提供了一张比文改会差不多少40%的有科学依据的部件清单;
(三)有一个完整的分类系统,因此,每个型和类都存在有机的联系,可以帮助记忆部件,减轻记忆负担;
(四)部件分类系统中的每个型和小类都有明确的定义,并且相互有不可分割的内在联系,因此,每个型中的类和每个类中的部件,都可以根据联系的前后关系,得到客观的座位;
(五)分类系统的整体性有利于对未知汉字和未知部件的事先安排,因为,任何新部件都离不开基本笔画结构,因此,不管今后字符集如何扩大,新部件的分类和代码,都可以不言而明;
(六)提出了具体的明确的拆分规则,其中关于“单独撇笔”的处理减少了部件的总数;“戈字架类”的处理解开了汉字拆分的最大难题;
(七)不拘泥不基本结构,提出了字架结构,补充了单纯的基本笔画结构的欠缺。
陈爱文先生的成功在于他对汉字研究的深厚功底,起因于对“笔画结构块”作出明确的解释。他说:“一、部件是一个”笔画结构块,那么它应该有两个以上的笔画,而且这几个笔画应该形成‘块状’。二、部件与部件之间是彼此分隔的,那么相交叉的笔画群当然是一个‘块’,不能分入两个部件;相粘连的笔画群一般也应该是一个‘块’,一般不宜分入两个部件。三、分隔开的两个‘块’不能称作一个部件。”
“我们想把上面的意思弄得更具体一点。有的笔画与笔画之间,虽然是彼此分隔的,但是应该算一个部件,因为它是‘块状’的。例如:‘氵’、‘冫’、‘’、‘丬’……这些笔画群中,存在一种内聚形式,使人觉得它们是一个‘块’。又如:‘彡’、‘巛’、‘’、‘二’、‘三’、‘川’、‘刂’等,这些笔画群中,存在一种平行的形式,也使人觉得它们是一个‘块’。……”
“笔画结构块不如下几种类型:一、相交叉的笔画是一个结构块。二、相粘连的笔画一般属于一个结构块。三、布局匀称的相分离笔画是一个结构块。四、封闭框内部的笔画如果跟外框是粘连的,则合起来算一个结构块。框内的点笔一般附属于外框。 五、单独的点笔一般附属于它附近的结构块。”⒃这些解释使部件清单中的每个型都有了明确的定义,奠定了部件分类整体系统的基础。
上面部件表中的部件,能够覆盖国标二级字库中的汉字;它的分类系统的分数方法,能覆盖一切未收集的汉字部件。因为,任何一个未收集的部件离不开基本笔画结构。它的全面性、涵盖性、系统性,都不是字根编码所能达到的。
这个部件清单,虽然未臻完善,但它却把拆分、分类、直接对应和有理安排,统统作了系统性的解决,为汉字拼形化启开了大门。表形码的部件分类如下:(略)