普及中文输入·造福子孙后代
 

...................................................................

 
    第一节 华鼎码总体设计原理  
     华鼎码是以形声为主、形形为辅的汉字排序检索法,是集部首、四角号码、音序三种汉字检索法优点于一身的二键码。总体设计原理如下:  
 

 
 

    三个正方形分别表示三种汉字检索法,重迭的部分是新的检索法。常用字用形声码检索,生僻字用形形码检索,多字词用首字形码加各字声码检索,产生的重码用人工选择。
    大家知道,用任何一种检字法检字都不是简单容易的,怎么把三种检字法掺合在一起倒反而简单容易了呢?这正是本节需要探索的问题。 
    部首检字法是根据字形来给汉字排序检索的,汉字在字典里排列的主序列是部首,第二序列是笔划数,第三序列是起笔笔形。部首的排序本身就相当复杂,它也是按笔划数和起笔笔形顺序排列的。检字时,先检索部首,再检索汉字,一般查一个字要数1-2次笔划、翻2-3次书页才能查到。遇到有些难以确定部首的字,可以按笔划数,先在难检字索引表中找到该字的页数,再在字典正文中找到它。
    直接把部首检字法用于中文输入的方案几乎没有,主要原因可能在于下面四个:
    1、部首太多难以记住;
    2、有些字部首难以确定;
    3、数笔划太麻烦;
    4、笔形只取5种,作为码元数量太少。
    如果把部首检字法的优势移植到中文输入法里来的话,可取的只是部首,而且只能是其中的一小部分部首。这一小部分部首必须是成字较多的,形义特征特别明显的,特别适宜于归类记忆和键位对应的那些部首。为此,华鼎码就只取了成字较多的68个部首(约占部首总数的三分之一,但部下的汉字却占到汉字总数 的80%),归并为26组,分别用26个字母表示,对应于26个字母键。(详见表1象形形码表)
    四角号码检字法也是根据字形来给汉字排序检索的。它把汉字的笔划和笔划对归结为十种类型,用0-9十个数字来代表,根据汉字左上、右上、左下、右下四个部位的笔形代号,来排序和检索汉字。根据四角号码可以在书页中直接找到相应的汉字,查字速度明显快于部首检字法,学习量和记忆量也小。可惜的是,这种相对科学合理的方法没有进入基础教育,全凭个人兴趣爱好自学而成,就因为自学和教学的巨大差别,使一般人对四角号码检字法产生了神秘和陌生的感觉。
    把四角号码检字法略作改进而设计的中文输入法已有好几个相当成功的方案,但码元少和取四角较麻烦是这类方案最大的不足。在设计华鼎码时,取其精华,选取这十种笔形及其代号,以左上角的笔形代号作为汉字的数字形码,配合象形形码,共同完成对汉字的形码分类甄别。(实施方案是9组笔形和代号,原四角号码中9号笔形“小字形及其变形”,归并到3号笔形“点和捺”中)。
    采用数字形码的另一个重要作用,就是可以用它作为第二码来对生僻字进行编码。对于常用字,第二码必然是字母(即声码)。而生僻字的第二码肯定不能是字母,而只能是数字(即笔形)。所以采用了笔形码,就能以形声和形形二种形式对所有汉字进行二键编码。(详见表2数字形码表和编码规则)
    音序检字法是目前使用最普遍的汉字检索法。义务教育和推广普通话是它最坚实的基础。在音序检字法里,汉字是根据汉语拼音的字母顺序和声调顺序排序检索的。只要知道汉字正确的汉语拼音,就能很快查到字。音序检字法还有一个其它检字法无法比拟的独特优点,就是当检索者记不起某个汉字的字形时,可以借助这个字的正确拼音,在一大堆同音字中找到它。
    遗憾的是音序检字法有一个无法改变的缺点,如果不知道汉字的正确拼音,查字是很困难的,正因为这样,音序检字法必须辅以部首检字法索引或四角号码检字法索引才能充分发挥它的效能。
    对于没有学过英语的小学生来说,掌握音序检字法的难度依次是声母、韵母、声调、字母排序。学过英语以后,难度会发生变化,字母排序不再困难,而方言影响会增大(包括声、韵、调),拼写字母有时会与英语混淆。
    音序检字法是最早用于中文输入的方法。也是目前实际使用率最高的方法。方言影响大,重码字多,生僻字输入很麻烦是这类编码普及的三大困难。华鼎码 在取汉字的声码时,把汉字汉语拼音的第一个字母作为声码(声码共23个),最大限度地减低了操作者的方言影响。

    掌握包含68个部首的26组象形形码及对应键位,掌握汉字左上及右下二角 的9组笔形,知道常用汉字拼音的第一个字母,这就是学会使用华鼎码的全部内容。华鼎码易学、易用、难忘的原因就在这里。 
    华鼎码是充分利用重码简化编码规则的二键码。它有形声码805组(35× 23),形形码315组(35×9),单字的理论编码空间为1120组,平均每组编码的重码字为6个,扣除少量无字的空码,平均每组重码字为8个,相当于拼音码平均 重码20个的40%。与全拼输入比,每字键数要少一半,与双拼输入比,键位对应更简单。 
    对于多字词,华鼎码采用了首字形码加各字声码的方法来编码检索。它与单字的检索基本一致,每多一字,只多该字的声码。单字用二键检索,二字词为三键,三字词为四键……。我们把词语的字数定为n,则检索键数为n+1。二字词的理论编码空间为35×23×23=18515,绝大多数的二字词重码能一屏显示,选择重码也就很容易。三字以上的词语基本无重码。正因为单字和多字词编码的原理基本一致,所以输入特别简单而快捷,即使是人工选择重码,也能轻松自如地完成输入。如果在进行智能化开发时,加上一个智能键,在输完字词编码后直接击智能键,由计算机自动完成重码的选择匹配工作,可基本免除人工选择的麻烦,使操作者的心理负担和操作负担进一步减轻。所以,华鼎码也是符合中文输入必须走智能化道路的正确方向的。 
    下面我们再来探讨一下,“以形声二码检索常用字,以形形二码检索生僻字”,对中文输入的积极意义。 
    常用字顾名思义就是经常使用的字,但常用字到底包括哪些字,却是一个难以说清的概念。考虑到我们是研究设计普及型汉字输入编码,是否能这样给它 定义:凡是九年义务教育教科书中出现的字是常用字,其它的字不能算常用字, 但也不一定是生僻字,生僻字只是现代汉语中不常用的,又不能按形声规则确定的字。根据这样的定义,我们可以很方便地给国标 GB2312-80集内的汉字进行编 码:一级汉字的全部和二级汉字中明显的形声字,按形声编码,二级汉字的大部分和少量一级汉字中的非形声字,按形形编码。这样,在中文输入时,一般文本中99.9%的字可以用形声码击出,0.1%以下的生僻字可以用形形码击出。 
    
       通过操作实践,形声码将因熟练而得心应手,形形码将使操作者遇到生僻 字时无后顾之忧。使普及码真正具有“常用字打得快,生僻字找得到”的特色。
 
    上面说的是给国标GB2312-80集内汉字编码的情况,如果给CJK大字符集,即《ISO10646国际标准通用多八位编码字符集--统一的中日韩汉字》进行编码, 情况又会怎样呢?
    CJK大字符集中,除了GB2312-80中的字符以外,还包括繁体汉字、非常用汉字、方言用字、日本和韩国汉字。根据华鼎码规则,这些字都可以作为生僻字处理,按形形码编码空间315个平均计算,每个编码空间只不过多出40多个重码而已。其中繁简体字之间的互换还可以用专门技术进行处理。
    这里需要特别指出的是,生僻字的数量不管有多大,在一般文书文本中的总字频只在0.1%以下,要求快速击出这些生僻字是毫无实际意义的,也是不必要的,重要的是要能打得出这些字。

 
     
 

......................................................................

 
  第二节 华鼎码形码设计  
 

一、 形码的分类、定名和序列
    把《新华字典》的189个部首归并为35个形码部。其中。象形形码26个,数字形码9个,这35个形码部按易学易记的难度可分为三类:
    第一类8个象形形码,它们一个部首就是一个形码,或表示同一意义的二个部首合成一个形码。有:

C:草部 (艹) D:灯火部(火、灬)
K:口部 (口) L:流水部(水、氵)
M:木部 (木) S:手部 (手、扌)
X:心部 (心、忄) Y:言部 (言、讠)

    第二类18个象形形码,分别由形义特征相近的几个部首合并而成。有:

A:癌部(疒、广、尸) B:贝部(贝、页)
E:耳部(耳、卩、阝) F:饭部(饣、食、酉、米)
G:盖部(宀、冖、雨、穴) H:禾部(禾、竹)
I:丝部(纟、衤、衣、糸) J:金部(钅、刂、金、刀)
N:女部(女、子) O:日部(日、曰)
P:跑部(足、车、舟) Q:犬部(虍、鹿、牛、马 、豸、犭)
R:人部(亻、彳) T:土部(土、山、士)
U:鱼部(鱼、鸟、虫) V:月部(月、骨)
W:王部(王、玉、石) Z:之部(走、之、辶、廴)

    这二类共26个形码,都分别由部首构成,具有很强地表意功能,所以称象形形码。象形形码用汉语拼音的26个字母作代码,以字母顺序为序,一个字母表示一个部首或一类部首,每个形码都有一个中文名称。形码的中文名称既形象又具可读性,以音托方式与字母相应。因此学习和记忆都比较容易。
    第三类是9组笔形形码,它只有笔形特征,而无表意作用,9组笔形用9(0-8)个数字作代码,所以也叫数字形码。实际上数字形码涵盖了120多个部首,因此,学习和记忆量也减少了许多。笔形形码的运用,也使严格界定汉字的部首归属成为可能。

二、严格界定汉字部首归属的方法
    对于形状复杂,数量巨大的汉字来说,一个汉字只能有一个部首,是相当难处理的。通常处理的办法是,让一些汉字分别属于二个不同的部首,对于一些难以确定部首的字,另加一个以笔划数排序的难检字索引表。华鼎码的办法是通过一个极简单的编码规则来解决。华鼎码规定:
    1、依次在汉字上、下、左、右、左上角有象形形码的,取该象形形码作首码。
    2、上述五个部位无象形形码的字,首码为数字形码。数字形码是指该字左上角(或左或上)的笔形代号。
    严格按照这二条规则来给汉字分类,每个汉字就只能有一个形码,这就严格界定了汉字的部首归属。
    例如:“旭”字,按习惯分部,它应该属于“日”部,但按照华鼎码规则,它不属于“日”部,因为字中“日”的位置在“旭”字的右上角,而右上角的“日” 是不能作为象形形码的。那么是否能照顾一下习惯,作为例外放在“日”部呢?那是不行的。至少现在是不行的。因为一旦开了一个例外的口子,一下子就会冒出几十个,甚至几百个要求例外照顾的字。严格按规定取码,绝对不搞例外,其实也是个习惯问题,一旦习惯了新规则,也就会感到很自然了。至于今后是否应考虑国人的习惯,把“旭”等一些字作为例外处理,要由实践的结果来定。

三、各部字数尽量均衡
    形码数量确定以后,编码空间也就基本确定了。各部的字数尽量均衡,是重码数趋于平均化的重要条件。事实上,华鼎码在对汉字进行形义分类时,受到了各部字数尽量均衡这一要求的严重制约。华鼎码之所以只取68个部首归并为26个象形形码,一方面是为了减少学习记忆量,另一方面也是为了做到各部的字尽量均衡。这可以从华鼎码单字码表中清楚的看出。

四、华鼎形形码设计
    对于常用字,当然用形声码可以解决问题。而对于生僻字,一般人不知读音,无法用形声码,我们设计了形形码。对于第二形码的取码方法,华鼎码规定:
    1、首码是象形形码的,第二形码取该字去掉象形形码后剩余的数字形码。
    2、首码是数字形码的,第二形码取该字右下角(或右或下)的数字形码。
    3、国标字符中的部件符,如 : 氵、讠、钅、辶等,第二码为0。

    很明显,第二形码的取码规则,也是按易学易用的原则规定的。
    设计普及型中文输入法,必须在编码设计的基础上进行软件设计。进行编码设计的人,通常是文字工作者,多数情况下,他们是软件设计的门外汉。而进行软件设计的人,通常是高级程序设计师,他们聪明、敏锐,但缺乏深厚的文字功底,往往用技术的观点来理解和诠释文化现象。因此,理想的中文输入方法必然由两者紧密合作而产生。相辅相成,缺一不可。
    华鼎码设计的技术关键是汉字的形义分类。对此,华鼎码只是提出一种检索用的汉字形义分类方法,并不企求以新形码取代传统意义上的部首,也不会妨碍识字教学中一些传统部首的重要作用。可以想象,随着风格迥异,各具特色的汉字分类法的出现,将会出现许多易学易用的二键码中文输入法,再经过一段时间 的实践、比较、综合,最终必将出现一种理想的中文输入法,供国人在信息时代普及使用。