无字库研究的意义、现状和展望
一、意义
20 年前,我提出研究真正的汉字计算机,初步形成无字库的理念。4 年前,认识到当前中文信息处理仍存的在种种问题,完全是由于汉字植根于电脑的错误方法: 离不开字库,也就离不开输入法。于是重新捡起无字库方法,探索能否完全由极少数笔画,组出所有汉字。经过近2年的试验,证明这个新方法是完全能够实现的,只用2×25 种笔画就可组出任意的汉字字形。这不仅可以解决中文信息处理的种种难题,还可更有效地解决万国文字同台处理,甚至开创计算机处理任何信息符号的功能。
它能克服的中文信息处理难题有以下4 点:
1、 乱码。
造成乱码的原因是,汉字内码和字库字模没有固定的一一对应关系,即:写入方的码本和读出方的码本不一致。大家熟知,台湾用Big5 码,大陆用国标码,必须先进行转换。有时即使转换了仍显示乱码。因为即使同一地区,不同单位,不同时期还会用不同的内码。如台湾有CNS1643 (CNS5205 ,CNS7654 ),CCCII ,Big5 等,大陆是比较统一的,但20 年内也换了四个码本(差别小的还不计在内),GB2312 ,GBK ,GB13001,GB18030。汉字太多,字库多收一个汉字,或者造了一个新字,就要扩充码本。码本一变,产生乱码是必然的事。我发现GBK和GB13001的内码是完全不一样的,Windows好像能自动转换。我常碰到有时因为一种字库某字损坏而缺字,网上也讨论个别汉字错或不能显示。从dos字库260K,到现在一种字体的方正大字库就达40M,这么大的字库要维持不出一点错,出一点错就能发现,实在不容易。这就是说,内码一致时,也易出问题。
2、缺字。
汉字太多,不管多大的字库也收不完,所以总有可能遇到字库里没有的冷僻字、地方字、异体字、宗教字、故意增减笔画的避讳字以及新造字。使用电脑的造字功能,造出的新字只能给自己看。搞印刷还可以,像报刊上会看到的一些形体特别的字,就是新造的或是用贴图补的字,只要印好了,也就不需要了。如果要长期保存,或要传到别的机子上,则必须带上这个新字模或贴图。我们阅读网上或其他电子文件时,常常碰到一些空白,就是因为这些字形没法表达,只好空着。我们可以打出“英文字Aple是错字,是Apple漏了一个字母p”,但没办法打出“苹果的‘苹’字是错字,它少写了一点”,这个错字少了那个点,就没办法表达出来。
3、‘万码奔腾’
万码奔腾应不是坏事。方法多,可任由人们喜好,选择适合自己的。问题是选不出好学好记、重码少、可输入所有汉字的输入法。字库愈大,输入法的研制愈困难;要使重码少,编码规则就要愈复杂、愈难记;以至于专业录入员,有时也会遇到输不进的字,查字典,换输入法,闹腾半天,有时还不能解决。而无字库汉字可以说不要什么输入法,像英文只要键入字母键就可拼成英文字一样,只要键入种类与字母相当的笔画键,就可组成汉字。因为汉字的平均笔画数太多,有必要使用事先组好的远比汉字数少的字根(约1000 个)。这一千个字根的输入法显然可以很简单,易学易记。
4、检索和排序。
检索和排序,在电脑出现之前就要用到,进入信息时代,则更重要了,因为它更关系着文字的自动处理。拼音文字有自然的字典顺序,每一字在字典中的位置是确定的,即使是新造的字,它也只能插入唯一的一个位置中。古老的汉字字典,先分部首,再数笔画数,笔画数相同就难分前后。更重要的是,部首分类有人为随意性,不同的字典不相同,有些字的部首难定归属,于是必须后附难字检字表。以后还使用过的四角号码、拼音码、首二笔画加笔画数等等。现代的字典,开头至少都有包括拼音的两种捡字表),排序仍无唯一性。无字库汉字本身就由笔画组出,其笔画序列就是一种自然的字典顺序。
5、万国文字以至任何符号的同台处理。
这不是汉字问题,而是国际性的问题。互联网要求我们同一台电脑、同一时刻能同时显示和处理万国文字。为此制定了世界标准 ISO 10646,所有字符都给一个4字节的交换码。且不说从原来的1-2个字节扩充了2-4倍,大大地降低了效率,实际上,犯了同汉字的字库加编码方法一样的错误:被编码的对象集太大,永远收不全,永远不稳定。应该按照无字库汉字的笔画组字方法,研究、总结出一套:可以组出一切字母和其他文字和符号的元笔画集,先组出所有字母、汉字型文字的字根以及常用符号,可给它们唯一的内码(不超过2 字节),就可处理任何文字和符号了(人类能够区别符号和图画,同一符号可以有不同的画面,对此我不作深入的分析)。
二、 现状
我现在使用VB编的试验程序,采用25种笔画分别对应a 到y 的字母,大小写字母对应一种笔画的两种形态,先组出1130种字根,使用它们对照GBK 21003种字形,都能组出相应的汉字。只要有字形参照,组出10万,13万已知汉字是没有问题的,最多再加几个特殊的字根。根据我组出1130个字根的经验看,要组出任何奇特的字根也是没有问题的。现在每套2×25 种笔画,都有宋、黑、楷、隶、魏碑等5 种字体,只要换一下参数,就可显示这5 种字体的汉字。汉字字形虽然还比不上字库的专业字形,但比开始试验时设想的,要好得多。因为已知许多可以继续改进的地方,只要再花点功夫,是可以达到印刷体标准的。下面分述这些值得继续努力的地方:
1、 笔画的选择,基本可以定案。
虽然我国没有完整的笔画规范,好像只有一份“GB13000.1字符集汉字折笔规范”(2001年12月19日发布),共25种折笔(不包括横竖点撇捺)。大部分作者列出的汉字笔画种类基本上一样。分25 种笔画,正可与现用键盘的字母键对应,每键对应的第二种笔画形态,还可以增减,多于1 个时可由程序控制,以便产生更好的字形。笔画的顺序可调整,以便于输入和形成自然的字典顺序。
2、 笔画轮廓线还不平滑。
这影响字形的美观。另外,轮廓内的填充程序也太慢。这些在poststript语言里应是已解决的事情。但我没掌握,一年多来也找不到学习资料,反成了主要问题。去年台湾易符叶健欣君虽然已告诉我贝塞尔公式,我未能理解,也没时间研究。最近才经试验了解,但要改我的基础笔画和程序,另外还有填充问题(笔画轮廓组字后,不连通),可能要花很多时间。
3、 笔画组字的分层理论和方法,基本可用。
我提出这个理论,目的是使笔画简单地自动定位,为了更精确,当然还可进一步改进。像“戈”“甫”等字的最后一个点的定位,现在太笨拙,首先要找一个解决办法,既符合笔顺习惯,又定位简单有效。
4、字根表组成,很值得斟酌。
选一个字根,主要为了更容易地组出一批汉字。最近统计,目前的1130 个字根中,有128个没有参与组字,实用仅1002个。有些组字不多,有136个只组出一个汉字,如果它自己又能被其它的字根组出,就可以删去。像“徒”、“起”两字的字根‘走’,现在是属于两个不同字根的,能否合拼。如果字根减为600来个,用首尾笔画选取它们,能够两键定位,不再用选择键,或都不翻页选择,那就更好了。要组出更多的汉字,是要增加一些特殊字根,可能必须用笔画组字,事先组出。这种特殊字根估计很少,不会多。现在需要找到收字最多的字典,把所有汉字都组出来,再编各种小程序,进行试验解决。
5、字根组字基本是20 年前创用的方法。
当时用字根分类的方法,不同的类用不同的组字子程序。现在改用一个结构参数,参数大小可调,组字更正确、美观。每个子字所占的位置大小,是由全字笔画总数按比例分配的。目前产生一个问题,太复杂的字中,笔画小的偏旁部首按笔画比例占的位置太小,使字形失真,这要试验一个解决办法。
6、输入法。
原来没有考虑,认为只要汉字能组出,输入可借用现有的任何一种输入法。现在已把所有汉字,每个汉字的全部笔画及结构都输入数据库,可以编各种小程序进行统计、试验,用来改进整个系统。组字时输入字根的方法是用字根的首尾笔画,笔画码的安排就是按这种统计来决定的,觉得很好,使汉字都几乎可以不假思索就组出来。所以本系统也可用来研究输入法,可能会创造出更好的输入法来。
7、选定常用字表。
为了提高存储和传输效率,除选定的字根外,对一部分常用字也要给它一个唯一的内码。这就是说,除选定字根表外,还要选定常用字表。不过这应是后期的工作,可能还得由国家来做。
三、展望
开始提出无字库时,终极目标是:研制出真正的汉字电脑,易于我国的计算机普及及信息的安全,当时甚至说,它不能使用英文,要用英文反而要外接专门软件。现在来看,终极目标应是:可以用任何一国文字为基础,可以同台处理万国文字。我们知道,现在要处理哪一国的文字,就要哪一国的信息交换码,电脑里必须有哪一国的字库字模。就是说,文字植根于电脑的方法都是“字库加编码”的方法。我们认为这是错误的,应该把编码的对象降一级,只对笔画或元笔画规定世界统一的信息交换码,而各国的各种文字和所有其他符号都由元笔画组出。由于人类的惰性,走错了路是很难认识到错误,碰到了问题,还会在错路上想办法找支路的,很难回头走另一条大路。除非原来的路愈走愈狭,而旁边已开出了另一条大道。现在的国际标准ISO10646 ,就是“字模加编码”这条道上的新支路,虽然它太庞杂,大家还是相信它是治病的唯一良药,正忙于构筑这一标准的复杂结构,不可能去研究笔画组字的新方法。这一标准要解决的,主要是汉字型文字的编码问题。如果我们汉字的处理有了更好的方法,国际社会就有可能、才更容易地接受新方法。
那么,我国能不能推广无字库的组字方法呢?现在看来还很难。难的主要原因是:无字库技术还没有成熟,组出的字形就远不如字库字好看。绝大部分人不知道、不认识这一条新道路,没多少人研究它,进度很慢。像上个世纪七十年代,很少人知道有什么汉字编码输入法一样,很少有人研究,大部分人还认为汉字不适于计算机处理。先驱者支秉彝的“见字识码”发表后,有千千万万的人自发起来研究汉字输入法,仅3-5年功夫,就解决了输入瓶颈。如果也有那么多人来研究无字库技术,相信也能很快形成成熟技术,这不仅对汉字处理,而且对整个世界都有大贡献。
无字库技术难以推广的另一个原因是人类的习惯势力。即使现在已有成熟的笔画组字技术,在我国信息界也难立即推广。虽然可以不动硬件,但整个软件系统,从最基本的BIOS、操作系统到所有应用软件,都要脱胎换骨,工作量是很大的。
推广无字库与推广拼音文字的困难有点相似,后者也没有经过实际考验的方案,也遇到极大的习惯力量。拼音文字的研究者人数不少、历史较长,无字库在这方面全无基础,更是弱势。新技术应在老系统较薄弱、有困难的地方开始应用,打开缺口,逐步推广。拼音文字如果能实现,可能应该是在代替外国人名的翻译、代替一些难写难认(读)的汉字开始。推广无字库技术,也应在当前的软件系统内,寻找有应用优势的领域,解决老方法难以解决的问题。等到人们熟识它,充分认识它的优点,才可能有步骤地改造原有的一切。现在可以试用的领域,有以下几方面:
1、手机中的缺字。
手机小,一般不会装大字库;输入键少,输入汉字慢。另一方面,手机是个人使用的,在两人之间或小团体内进行通讯的,常要用到个性化的人名、特殊的符号,常常字库里没有。无字库却可以方便地合成,随意地“写”出来。手机日益普及,熟识的手机操作很易转到微机上来。
2、开发处理古文、宗教等特殊文字的字处理软件。
它们可在普通微机上运行,永远不会有缺字,必乐于使用。无字库内嵌在软件内,由它产生的文件,无论在那个计算机里都可由它处理,使人们在老系统内先熟识该技术,爱上该技术。
3、设计美术字。
现在字库虽有多种字体,也可用图象处理生成艺术字,但不能产生过去用手工设计的由有个性的笔画组成的汉字。无字库技术只要设计出有个性的笔画,或者设计出有个性的个别字根(如点、“口”字等),就可产生一批同型号的美术字。
4、研究输入法。
用无字库汉字生成所有汉字,把笔画序列存入数据库后,就可用来分析、统计汉字的形态、组字特性;统计字块、字根、笔画的分布,用来科学地开发新的汉字输入法。
陕西省气象局 张时钊 2004.7.13
Email: postmaster@chancezoo.net