和码的由来
我找到和码,实属偶然。
2003年9月我在浏览江毅先生的《汉王简》汉字输入法网站www.hanwj.com时,看到了江先生提出的“手机键盘新构想”,就对手机上如何输入汉字,即如何用0至9十个码对汉字进行编码,有点想法,进而引发了对汉字编码输入法的兴趣,使我花了大量时间做进一步的思考、研究与实践。
我是于1997年9月到英国学习计算机的,毕业后在英国从事计算机软件工作。几年学习、工作、生活在以英语为主的环境中,写汉字,输入汉字的机会少,如需要输入中文,使用的是拼音,因读音不准,输入速度很慢,有时感到很麻烦。当有了做个新的输入法的想法时,心里很兴奋。
做汉字输入法,需要较好的电脑数据库知识及软件编程技术,我刚好都具有。于是我拿起纸笔来,设计0~9十个数字码的编码方案。汉字形码方案的设计,也就是对组成汉字的各种字根进行挑选,将选出的字根按一定的规律分排到这10个码上,再用这10个码,依字形对汉字进行编码,用数据库对汉字的编码结果进行统计,再根据统计结果对方案进行修改。修改的目的是使汉字在十个数字码上的分布更均匀,以降低重码率,使汉字字根的选取与归类合理,易记。编码方案的设计好像就这么简单,但工作量特别大,因为要对方案做多次修改,每次修改后,都要对汉字重新编码,重新统计和分析。
国家标准字符集GB2312含6763个汉字,如用10个码编码,每个字4码,共有10,000(一万)个码位,分配给这6千多个汉字,一字一码(无重码),还有很多码多余(空着)。这给人的映象是,编手机上的汉字输入法很容易。但实际编起来,无论你怎样在10个数上排布字根,无论你想出什么规则对汉字进行编码,得到的结果都是重码太多。即一个4位数的码,对应好多个汉字。
即使每个汉字用5个数字编码(码位有十万个),6千多个汉字也有很多的重码。每个汉字用6个数字编码(码位为百万个),6千多个汉字仍有较多重码。
至2003年11月上旬,当我用经20余次修改过的方案对6千汉字进行编码时,发现重码率过大,远远超过我的预料。认识到10个输入码的汉字输入法,无论方案如何,不管是音码,形码,还是音形(形音)码,都有重码太多,取码次数太多(6个)的严重缺陷,都无法做成一个好的输入法。因此我放下了这段时间的研究。
在这段时间里,方案设计研究的收获有:1、对汉字的各组成字根,及其在汉字中的分布有了更具体细致的了解。2、做了几个辅助程序。3、汉字的取码方法,采用了“定点位置+剩余部分取最大码值”,后来发现这是一个创新。
做输入法是偶然得来的想法,依兴趣投入了时间,开始时我还不知道在国内早已是万“码”奔腾了,已发明的汉字输入方法有上千种。如果知道这种情况我就不会认为,汉字输入法,特别是手机输入法,还有研究的余地,也不会投入大量的时间了,因为完全可能是重复别人的劳动。另外我也不知道国内已有的汉字编码的种种规定。这些也使我最初在思考,设计编码方案时,没有受其他输入方案的影响,没有受条条框框的约束,只根据自己有的汉字、电脑,以及编程的知识,独立思考汉字的编码方案。我想这是和码方案有创新的原因。
在国外生活的中国人,对汉语的推广与发展都比较关心,因为许多人都有用外语的困苦。在此之前,于2003年初,我在网上发表过 “给汉语创造一个字母文字的扩展部分如何?”的文章,其中提出过的(5行×5列)的单手键盘的构想,并做了个软件单手键盘的模型。2003年12月初,当我把这个单手键盘与10个数字键的方案联系在一起时,我想到了一个新方案。就是把数字键个数由10增加到25个,在5×5的矩阵中纵横有序地排列这25个数字码,在25个码上排布汉字的笔画与字根。
25个数字码可以在通用的电脑大字母键盘上,通过25个字母键输入,即用大键盘上的25个键输入25个数字码,也就是把电脑大键盘看作是(用作为)大数字键盘。
在手机和小键盘上,有0~9十个数字码,用12345这五个键的两两组合,即可输入25个(两位数的)数字码。
25个码比10个码,对汉字的离散度大了许多。理论上来看,一个码的离散度大25/10=2.5倍,2个码的离散度就大2.5×2.5=6.25倍,3个码15.625倍。实际情况是,因为汉字字根分到25个码上,比分到十个码上,分得具体得多,离散度相差的实际倍数,比理论值还高。
利用25个码对6千多个汉字编码,每个汉字取3个码,重码率情况比用10个码编码,每个汉字取6个码要好很多。这就解决了10个数字码,重码率高,取码次数多的问题。 25个字根码,比10个字根码,码数目增加了。
在码个数增加情况下,怎样使字根表仍简单易记,就显得特别重要。和码通过以下两个方面,做到了这一点。
一、字根表的纵横顺序
和码把汉字字根,按其起笔笔画的横(横折),竖(竖折),撇(撇折),点(捺,捺折),分排在5×5矩阵的5列上,因以横(横折)起笔的字根在汉字中分布最广,横(横折)起笔的字根占5列中的2列。
竖(丨)列位于字根表的中间对称线位置,好记。撇(丿)是‘4’的起笔画,撇与撇折放在第4列,也好记。
在矩阵的纵向,同列内的字根从上到下,按其对汉字的字义与字结构的限定性大小顺序排列(大体上为由简到繁的顺序)。
根据字根在字根表中排布的纵横顺序,许多字根的位置(码名),能被很快地推想出来。这种顺序推理是不易忘记的。
二、字根的分类与归纳
通过对字根的研究,依据字根在汉字中分布的统计分析,对字根做了多个很好的分类与归纳,如:
1、把横起笔的字根,分为2类。一类为与其他笔画相离或相接的横,排布在11与15位上;另一类为与其他笔画相交的横排布在第二列;横折(乛乙乁)起笔的字根排布在12、13、14码位上。
2、把“冫”与“亠”放在52;“氵”与“辶”放在53。
3、把与其他部件相离或相接的“口”放在33,把复杂的“囗”外框,以及与其他部件相交的“口”放在34。
4、把第一、二笔画为撇、横折的字根都放在44。
5、把“贝”与“貝”放在一起;“见”与“見”放在一起;“讠”与“言”放在一起;把“钅”与“金”放在一起。使许多简体字与繁体字的编码一致。
6、25个码中,单笔画有6个码(11、12、21、31、41、51),最好记。等等。
通过这两个方面的工作,做到了25个码的简单易记。
和码采用25个数字码,每个码都有码名与码值,码值是码名的倒数,如:‘日’的码名是35,码值则是53;土的码名是23,码值则是32。字根可以通过码值比较大小。如“月”的码值是44,日月土的码值从大到小的顺序为:日→月→土。这一特性使得“(剩余部分)取最大码值”,这一新的取码方法成为可能。
在单字的取码方法上,“定点位置+剩余部分取最大码值”,经历了四个阶段,采用过四种取码方法。
第一种取码方法:把单字分为左右型与其他型两种,不是左右型就是其他型。定点位置是字或字块的首笔与末笔。
把汉字分为左右型与其他型,简单,明确,歧义很少。但有一个码是取在字的末笔位置,这与人的认字的习惯相左,与书写顺序不同。取末笔码时要往前查找最大码值,给初学者带来不便。
第二种取码方法:按字形结构的“相离可分,相接有条件地分,相交不分”为规则,把单字二分。单字被分为二分汉字,与一分(整形)汉字。定点位置是字或字块的首笔与末笔。
第一种取码方法只对左右型汉字二分,第二种方法对更多的汉字进行二分,使更多的单字的第一、二码是按顺序取码。但仍保留了在末笔位置取码的缺点。
第三种取码方法:按字形结构的“相离可分,相接有条件地分,相交不分”为规则,对单字分块,最多分为三块。采用 “块取首根+剩余部分取最大码值”的取码方法。
第三种取码方法,把原来的“定点位置”改进为“块取首根”。取消了有缺点的末笔定点取码方法。按块的顺序取码,符合人的认字,写字的习惯。
第四种取码方法:把单字的4个码分为主码与辅码,先把单字按字义与字形结构分成三块、二块、或一块,后采用“块取首根 + 剩余部分取最大码值”的方法取主码,依书写次序排列主码为单字的第一二三码,最后取辅码,主码加辅码组成单字的全码。
对国标GB2312中的6763个汉字进行分块,统计表明,三块字约占80%,二块字约占15%,一块字约占5%。可见大部分单字的前三码都能按块的顺序取码。用软件输入时,大部分汉字在三码内即可选出,这就使得三分汉字的取码方法好用。
“块取首根+剩余部分取最大码值”的取码方法,是在字的几个(书写顺序的)不连续点,选取字根。这种方法使得字根集不需要包括组成汉字的所有字根,因此和码字根表中笔画与字根少,这进一步也减少了记忆量。
另外,和码利用电脑数据库技术,对6千多个汉字进行编码,对编码结果做多项统计,进而对字根表做修改。使6千多个汉字在25个码上的分布尽量均匀,以减少重码。统计分析每个汉字3个码的编码分布情况,使其重码率最低,使绝大多数常用汉字,在三码内即可以被选出。
通过对字根表大小100多次的反复修改。最后得出的和码字根表是一个排列有序,易记性好,容易使用,重码率低的字根表。
2004年3月底,和码输入软件的第一个版本基本完成。
2004年5月23日,和码汉字(字形)数字编码方案及其输入法在和字网(www.HeZi.net)上首次公布。
至2005年12月,和码又经历对字根编号、字根表、单字分块方法、以及单字取码方法等的多次修订,而最终确定。
从和码编码方案的研究,输入软件的开发,到首次公布,历时不到六个月,所有的工作是由一个人独立完成的。这也得益于网上大量的资料,和网友的帮助。现按时间的顺序(兼作大事记)记录如下,以表感谢。
1、2003年9月在江毅先生的《汉王简》汉字输入法的网站www.hanwj.com ,看到了江先生的“手机键盘新构想”,由此对汉字输入法产生了兴趣,随后就开始了汉字输入编码方案的思考、研究与软件制作。
2、魏金雄先生www.khngai.com,有许多汉字资料与工具。
3、胡敬禹先生的语言文字网站联盟www.yywzw.com,有丰富的资料和网站连接,汉字字形字母理论。
4、张时钊先生的汉字电脑研究所www.chancezoo.com,汉字电脑的理论研究与实践。
5、2003年11月上旬,当我用经20余次修改过的方案对6千汉字进行编码时,发现重码率过大,远远超过我的预料。10个输入码的汉字输入法,无论方案如何,无论是形码,音码,还是音形码,都有重码太多,取码次数太多的严重缺陷、都无法做成一个好的输入法。因此我放下了这段时间的研究。
6、2003年12月初,我把以前提出的单手键盘与10个数字键的方案联系在一起时,得到了一个新方案。就是把数字码的个数由10增加到25个,在5×5的矩阵中纵横有序地排列这25个数字键。由此开始了和码汉字输入方案的研究与其输入法软件的开发。
7、里仁网www.lesson.com.cn上2002年汉字输入技术与应用研讨会论文集。特别是张玉华、周克兰、吴娴的有关汉字输入法码本技术的文章。
8、中国语言文字网www.china-language.gov.cn。
9、潘德孚先生的网站www.yywzw.com/pan ,和他的“汉字编码设计学”著作,深入地著述了汉字编码与输入法的理论。
10、王码五笔网:www.wangma.com.cn,六字元金码,数字统一码,九宫数码,表形码,二笔数码,等等。
11、清华大学的字频表。不知道网址了。
12、导码http://input.foruto.com/gbqpxdm/ 。有丰富的输入法相关网站的链接,很多有用的词组集。
13、中国知识产权局网www.cpo.cn.net,有许多汉字输入法专利的详细资料。
14、2004年1月,我的朋友熊明友先生为我办理了此项发明的专利申请。
15、2004年1月16日在www.chineseime.com上发信息求汉字IME编程资料,2月13日小宏朋友回复,告知了许多重要的IME编程资料。
16、北京语言大学语言信息处理研究所的字词频表。 http://www.blcu.edu.cn/lircweb/download_Resource.htm
17、Microsoft 公司网上IME编程资料。邮购Windows Server 2003 Driver Development Kit。
18、李振春先生的自由拼音输入法www.opencjk.org,特别是他的完整的源程序。
19、歪林输入法及例子程序。http://input.foruto.com/IME /Windows/Big5/Unicode/index.html
20、极点汉字输入法和其词库http://www.wbfans.com。
21、2004年3月底,和码方案与字根表经过细致研究和100多次的大小修改后基本确定。同时完成了对7千多汉字,24万余条词组的编码,也完成了和码输入软件的主体部分。
22、2004年5月23日,和码汉字(字形)数字编码方案及输入法,在和字网(和码网)www.HeZi.net上首次发布。
23、2004年11月21~23日,和码参加了在北京由“中国中文信息学会”等多家权威机构共同举办的“中国首届手机中文输入大赛”,和码是参赛的30多个队中,唯一采用25个数字输入码的输入法,也是唯一实现了电脑大小键盘和手机上,汉字输入方法完全统一(通用)的输入法。
24、2005年4~5月间,浙江三门县的金圣杰先生对和码提出了多项宝贵的修改意见,如:数字码在电脑大键盘上从中间向两边排布,指出‘与亏’中的折笔是‘竖弯钩’,汉字中没有‘撇弯钩’,以及字根排布与软件功能等。
25、2005年10月,《和码汉字输入法》软件与手册,由重庆大学电子音像出版社正式出版。
26、2005年12月,广东东莞的叶志全先生提出码名的第一个数字为列数(区号),第二个数字为行数(位号)的宝贵意见。
27、至2005年12月,和码经历对字根编号、字根表、单字分块方法、以及单字取码方法等的多次修订,而最终确定。