谈五笔《输入法词库别发烧》(一)

144
作者 FivePen
2016-09-15 02:24 字数 20895 阅读 3003评论 0

该文为转载;作者:晓览(关注晓览微信公众号:小折五笔教程)

下面是《输入法词库别发烧》这篇文章,作者是五笔字型发明人王永民。点击左下角“阅读原文”查看原文,方框里的字是我的观点,将86词库与091点儿词库做了一个对比。


【IT168编者注】搜狗五笔的推出让输入法领域又添了一把火,当1.1版中引入八万字的大词库时,作为五笔字型的发明人王永民教授却对汉字与词语的关系有不同见解。“舍字而专注于词,那便是舍本求末”,王永民先生八易其稿完成了这篇《“词库发烧”的病因》,委托IT168网站首发。作为汉字输入研究少有的学术文章,希望对广大用户和输入法研究者提供参考。


  “舍字而专注于词,那便是舍本求末”这句话很适合86方案,但是不适合091编码的点儿词库。与其恰恰相反,点儿词库的核心思想是“专注于词,兼顾单字”。


摘要

  本文是纪念五笔字型发明25周年的一篇学术论文。

  自五笔字型今年元月荣获“国家技术发明奖”以来,学习使用者以及“连个招呼也不打的五笔开发商”越来越多。不过“问题”也是越来越多,其中最突出的莫过于“词库发烧”!

  许多人误以为五笔字型的词库像个“橡皮囊”,可以随意撑大。错了!五笔字型发明人警示广大用户和“开发商”:比赛“词库大”导致“词库发烧”,不是“忽悠”老百姓的“商业炒作”,就是根本不懂汉字编码的科学常识。“字词兼容”输入技术的发明人呼吁:“词库发烧”和10年前的“语音输入”一样,源于同一种“基因”,国人再也不要只图一时之快而上当受骗了!

  本文指出:对于词库,唯一正确的解决方案是在“以字为本”的基础上,建立一个总数不过4万的“通用词库+专业词库”;希望“有能力又有爱心”者,在“50个专业词库”方面下功夫,以便造福汉字文化和广大用户。


  打词可以降低码长,但86五笔不适合太大的词库,因为86的编码方案在挂接大词库的时候会造成重码率激增,如果用基于86方案的词库,会经常遇到常用词需要选重码的现象。

  点儿词库2016版的词组数量为10.5万,并且正在以每年约1500词的速度增加,远远超过了王永民所建议的4万词库,但是这10.5万词库的重码率也不会比86的4万词库的重码率高。相反,较大的词库可以使用户在打一个词的时候更加有自信,因为点儿词库的收词原则是“只要看着像词,词库里就一定有”。另外重码率之低让用户进行的选词操作会最大限度地减少。


一、汉字输入的“难”与“乱”

  汉字输入的问题,30多年来,一直在两个字上打转转。一个是“难”,一个是“乱”。“难”是因为汉字太多太繁,于焉有“万码奔腾”;“乱”则是因为人们始终弄不清“字”和“词”的关系,致使“词库发烧”,离科学越来越远。

  “难”,对汉字来说,是没有办法的,谁让咱是中国人?骂电脑自然也不管用,于是只好骂祖宗(发明了汉字)。好在五笔字型1983年革命性地突破了汉字输入电脑“速度和效率”的“瓶颈”,用他们的洋键盘,一个螺钉也不动,每分钟便可输入100多个字,使洋大人们目瞪口呆,使国人为之一振!

  然而,同样是在英文标准键盘上,用五笔字型输入汉字,比起打英文打字来还是要多一道“拆字”的手续,并不轻松。所以我才坦然承认:“五笔字型有点难”。

  但毕竟五笔字型避免了为电脑制造几千万个“专用汉字键盘”,将大键盘变为小键盘,变“大难”为“小难”,将每日每时的“难”(输入)变为学会五笔字型的“难”。谁能说,这点“难”比起汉字走入“死胡同”来,中国人不是“赚大发”了?只须少玩点游戏,少打几次麻将,花三天功夫“受点罪”,便能学会五笔字型(再用5天熟练指法),“学一阵子,用一辈子”受益终生,咱们再也不用“废除汉字”,岂不是“弊小而利大”?

  当下,联合国总部和全世界各地的华文报刊,当然包括我国文字输入的大量工作,都少不了用五笔字型,我国数千万“白领”,将五笔字型作为工作技能和谋生手段,中国汉字获得了新生畅行于信息时代,谁能说五笔字型不是“功大于过”呢?

  然而,汉字输入软件的那个“乱”,就不是一下子可说清楚的了。从1978年开始,人们一直在探寻“音码”与“形码”的关系,自然也是“乱”。

  “音码”和“形码”既对立又统一,像男和女一样,你说哪一个更重要?争来争去,还是得相辅相成,双轨并行,平分秋色,相得益彰。现在,这二者早已相安无事、和谐共处、“乱而后治”了。

  当前最重要的“乱”,是输入软件的开发者始终弄不明白“字”和“词”的关系,搞拼音习惯了,甚至主张输入时要“以词代字”;或是以为五笔字型打词是个“宝贝”,便恣意滥用,结果导致了违背科学常识的“词库发烧”。

  打4下就能输入一条很长的词汇,是我发明的,是不是“宝贝”,我自然知道。问题是“过犹不及”,“宝贝”用过头了,发烧了,就乱了套,走入迷津。


  点儿词库的10.5万条词组并不发烧,它的收词原则是看着像词的都收,不像词的或者由多个词组成的低频长词坚决不收。比如海峰6万词库里的“精神现象学”“非婚生子女”“马克思恩格斯”等词,都不会收。词库的词组数量虽然多,但是绝对不收垃圾废词。

  为什么091的重码率低?举例来说吧,如果以每个词所包含的字数来分类,词库里数量最多的就是二字词了,二字词的编码方式是取每字的前两码,如果一个二简位上的常用字过多,那么必定会造成这个编码的上的重码多。比如在常用1500字范围内,如果一个字只取前两码,86的重码数前10名是这样的(重码按音序排列):

17个/tf/待/德/等/告/街/靠/毛/千/迁/廷/徒/午/先/行/选/赞/造

15个/wy/仿/含/集/今/领/令/念/偏/食/售/停/信/依/仪/住

13个/ud/差/关/减/卷/判/善/送/头/羊/养/郑/状/着

13个/wg/便/倒/登/合/剑/例/命/拿/全/使/侠/愈/债

13个/yn/遍/词/房/废/户/记/刻/启/亡/忘/望/讯/永

12个/ip/尝/常/沉/党/觉/赏/深/沈/堂/学/演/掌

12个/kh/跟/贵/距/路/跑/遣/跳/遗/中/忠/足/嘴

11个/ww/从/份/谷/价/伦/人/俗/偷/欲/众/坐

11个/yt/放/话/旅/旗/施/庭/谢/许/旋/州/族

10个/fh/超/赴/赶/起/趣/越/赵/真/直/走

10个/gk/带/副/赖/吏/融/事/束/速/吾/整

10个/th/版/彼/处/牌/片/算/息/延/怎/自

10个/wf/传/付/会/祭/仁/舍/什/侍/伟/值

  常用字的组词能力是很强的,比如tf上这么多常用字,那么“tf××”和“××tf”这样的编码必定会有很多重码,随便挑了几对重码多的如下(重码按音序排列):

tfww/待人/等价/丢人/先人/行人/造价

tfud/告状/街头/行善/行头/选送

wytf/领先/停靠/伪造/信徒/依靠

tftf/德行/等待/等等/乖乖/毛毯/先行

  所选的这几组另外三对字母ww/ud/wy也恰好出现在上面的前10名,这绝不是巧合。如果要将重码扼杀在摇篮之中,就必须把常用字尽量平均分配到625个二简位中,所以在进行字根排布的时候一定要考虑多方面的因素。


二、“词库发烧”的“始作俑者”——“五笔字型” 

  30多年的汉字输入法研究史中,输入字和输入词,孰轻孰重,一直是一个争论不休的难题。

  最早,也是最有名的汉字词语计算机处理专家,要首推北航的刘源教授了。他老人家几十年如一日都在研究汉字的词,还承担了国家级项目,研究“计算机自动分词”,整理过100万条、1000万条汉字的词而著述颇丰。终于积劳成疾,早早仙逝,临终也得不出一个结论。为什么?因为“词”和人一样,有生有死,动态变化,“每一时刻都不是它自己”。

  1983年五笔字型发明了“小键盘高效汉字编码输入法”的同时,作者又首创了“字词兼容”的“词汇码”——几十个字的“词”,打法仅仅相当于一个“字”,一律打4下便可输入。而且,打字与打词,不用换档,没有间隔,不用任何附加操作。

  这是一项极有实用价值的发明。有了词汇输入,“3字词”本来要打12下,“中华人民共和国”按简码也要打16下,现在只要打4下,汉字输入的速度平均提高了两倍之多。

  千万别小瞧了本人发明的“字词兼容”输入技术!若是没有这项发明,中国的文字产品也许就不会有现在那么多。

  由此,大家都希望多打词,认为“词越多越好”。于是,某些门户网站和各种盗版抄袭王码五笔字型的所谓“××五笔”,便热衷于比赛“谁的词库大”,把词库的大小当作软件的“卖点”——“词库发烧”了。

  想一想,若是有人把词汇输入设计得很麻烦、很累——要按空格、要换档、要先输入词的“标示符”才能打一条词汇,谁还会乐于打词呢?今天还会有比赛“谁的词库大”这一洋洋大观吗?所以嘛,“词库发烧”的“始作俑者”不是别人,正是五笔字型。


  86五笔所有的词都必须要打全四码,而基于091编码的点儿词库则不然,它包括全码词、二简词、三简词,这样做一是为了提高打字速度,二是为了离散重码编码。不但点儿词库这样做,甚至有些86的用户也经过自己改造词库,用上了自己设计的二简词。比如86五笔的二简jr是“蝗”字,这个字即使用到,也是在“蝗虫”“飞蝗”“蝗灾”等词中出现的,所以完全可以打词,这样一来,jr这个位置就浪费了,于是有些86用户将它改成了“最近”“最后”等高频词,这样,既没有浪费这个位置,词的码长还降低了,何乐而不为呢?


三、“词库发烧”的症状种种 

  解铃还需系铃人,让我来为“词库发烧”把脉诊病。

  “开发商”们将“词库发烧”的温度越烧越高,今天一个版本,明天一个版本,比“大”,比“时髦”,比赛谁的词库“灵活机动”。你5万,我就来10万,还有号称20万的,更有所谓“海量动态智能词库”,可以把输入过的内容“整句”“自动变成词”存入“库”中备用……,至此,含有大量“垃圾词汇”的“词库”不是“发烧”,而是“发高烧”了。

  可是,汶川出名了,“水立方”出现了,马英九上台了,菲尔普斯得金牌了,“迪吧、水吧”冒出来了……,一时间,不管是google的“海量词库”或是“搜”什么的“智能词库”,仍然是一个个不够用。

  结果呢?打字时,字与词重码,词与词重码,词与句子重码,提示行摆得满满的,顿然使五笔字型“盲打—高效”的优势丧失殆尽——“盲打”变成了“看打”,“自动上屏”变成了“选字上屏”,这和“拼音选字输入”已经没什么差别了。

  结果呢?由于重码太多,目不暇接,频繁选词,错误难免,慢不必说,还使文本质量大为降低,“豆腐渣文件”越来越多。

  结果呢?长期打词不打字,字的笔画结构不甚了了,不会写字了,“提笔忘字”了。

  “词库发烧”的副作用还在于:词汇,特别是不常用的“句子”,在电脑中占据了很大的存储空间,检索起来很费时间,很可能输入码打完了,得等好一会儿才会显示结果,速度便谈不上了!

  “词库发烧”,各自为政,各自有库,必然使词库不通用。你离开自己的电脑,便到处找不到可用的“词库”。

  一些人士认为,随便自造一条词,比如“广东省佛山市经济贸易委员会办公室主任林有亮”,21个字只打4下就出来了,很带劲,很方便,很高兴,乐此不疲,这是可以理解的。然而,软件开发商故意让“词库发烧”,情况就不一样了。他们盲目地追求“卖点”,故意吹“泡泡”,暗示公众“越大越好”,造成垃圾词汇堆积成山、怨声载道、精疲力尽,不知如何“回头是岸”。也许这个时候,有人会想起来要问一下王永民:这个“词库”到底多大才算好啊?有没有一个科学的解决方案?


  点儿词库关注的是全码词的重码率的降低。但是设置多重简码却可以大大提高打字效率。现在的极点五笔、QQ五笔、小鸭五笔等优秀的五笔输入法均可以使用分号键和引号键使第二重码和第三重码上屏,分号键的按键难度和字母键“A”相同,引号键也比数字键2、3容易按到。所以091设置了多重一二级简码,设置它们的原因一是可以降低码长,二是可以空出一二简重码字原本需要占据的三简给次常用的字和三简词,为GB范围内基本消灭全码字提供了基础。只要记住了字的重码位置,分号和引号键权当字母键用了,不过与字母键不同的是,它可以直接使字上屏,又省了一个空格键。


四、字有限、词无边:24年前的一个“忠告” 

  其实,这个“词库发烧”的问题,早在24年前,本发明人在印行过上千万册的《五笔字型培训教材》的“前言”中,就写过一篇“字有限、词无边”的文章,早就说得到位、写得清楚了。只是那段至理名言的学术观点,后来被无视科学的“商业操作”淹没了。“懒人们”或是觉得打词汇“很好玩”的人,把五笔字型的词汇快捷输入法这剂“灵丹妙药”吃多了,“发烧”了。现将原文录在下面,但愿能给当前的“词库发烧”降温。

  文字是记录语言的书写符号系统。一个文明发达的社会是必须有文字的。有了文字以后,语言中便增添了书面语这一非常重要的存在形式。用声音表达的语言是听觉语言,而以文字形式记录的语言则是视觉语言。尽管任何文字系统的基本符号都总归有限,但使用它们所记录的语言词汇却像万花筒中的图案,简直无穷无尽。由2400个常用汉字可以组成10万条常用汉字词汇,反过来,即使是100万条书面词语,也未必用尽7000个不同的汉字。

  如若不是专门设计,100万条词语中也不会有河南名菜“鹑蛋红扒鸡”这样的词和“六王毕、四海一、蜀山兀、阿房出”以及“积腋成裘”、“轻诺寡言”、“好雨知时节,当春乃发生”这样的语句和成语。至于地名和人名,就更加无法计算了。5万条词语对于整个汉语来讲,也只能是九牛一毛。无论计算机的容量有多大,也永远无法存储全部的词语。何况目前机器的容量总是很有限度,而词语的发展永无止境呢?因此,一个计算机汉字处理系统,应当首先有效地解决汉字作为“单字”的输入与输出问题!这样才能够一通百通,一解百解,使汉字进入计算机的问题走向实用化。

  当代汉语词汇的出现频度是很不一样的。“经济”这个词汇,就比“车裂”常用得多。为了提高输入汉字的速度,完全有必要、实践上也已证明,五笔字型创造的“词语输入法”是科学而有效的。例如:“中华人民共和国”七个字,只用按“口亻人口”4个字根就可以输入。

  还应当提到的是,汉语的书面语言是以单字为单位书写的,一个字就可以是一个词,几个字也可以组成一个词,字和词混排在一起,从形式上看,字词之间从来没有任何明显的界限。例如:“白日依山尽”,怎样划分其中字词的界限呢?这是汉语文字与诸如英文等西方文字很不相同的。计算机汉字输入,最好能体现并利用这一特点。采用五笔字型首创的“字词兼容”编码法,既能准确地处理尽可能多的单字,又能有效地处理常用的词汇。在输入操作中,字与词之间没有任何换挡操作。例如输入“黄河入海流”时,“黄河”作为词汇打4次键输入后,不用任何换挡或作特殊标记,就可连续打“入海流”三个单字。这样设计,是完全符合汉语书面语言“字词不分”这一固有特点的。

  当然决不是“词汇越多越好”,词汇多了重码呈“几何率”增加,想打快结果不可能打快了。真正科学有效的办法是:系统提供一个1~2万条词的“常用词库”,再设计一个“自造词”软件,使得不同专业的用户,可以方便地自行增加并保留自己的“专业词汇”,也可以删除自己不用的词汇,“静态库”是常用的、公用的、相对稳定的;“动态库”是个性的、专业的、可变的。这就比较合乎现代社会新词语不断涌现,旧词语不断更新的现实情况。(本文原载1984年王永民、张一平著《五笔字型》培训教材。)

五、“词库发烧”背离了汉字编码的科学原理

  30年来,对于字词的关系,作者一贯主张“字为本、词为次;字有限、词无边”。常用汉字3000个左右已足够用于各行各业的日常之需,可是10万条、100万条词,也不能满足三五个专业领域使用。中外的人名、地名有几百亿个,动物植物的物种有上千万种,细菌有百万种,疾病有几十万种,各类产品名目有千亿种,化合物有几亿种,哪个不是“词”?开了奥运会,新星新词有多少个?每天的新闻都会有上千条新词!所以,无论谁,想弄一个“万能适用”的“词库”或软件,那就像是要“数天上的星星”一样,不仅是不可能的,简直就是愚蠢的。

  汉字与词语的关系,一如“原子和分子”的关系:原子为数只有100多种,可由原子构成的分子和物质,是不可穷尽的,舍字而专注于词,那便是舍本求末。

  人们为什么会越来越忽视、越来越淡化“字”的输入呢?为什么对“词”的输入越来越“发烧”呢?本来是为了“快”却适得其反呢?说得深刻一点,最根本的原因是“开发商”不懂“汉字编码”的学问,有意无意地在输入技术领域制造“泡沫”。

  在汉字编码设计中,字也好,词也好,都是“编了码”才得以用字母键输入的。像客人住旅馆一样,每一个“码”都要在“编码空间”中占据一个“房间”。“房间”的总数是有限的,决不是一个可任意拉伸变大的橡皮囊。用25个字母键,打4下键的“编码空间”(总编码数)为:


  也就是说,不管多少字、多少词,全部只能有406900个“房间”。国标一、二级汉字占据了6763个,重码率仅仅为


  可以保证编码的唯一性,这正是五笔字型重码少、打得准的原因所在。

  但是,由于字和词的“编码形式”完全相同,增加词,就等于增加字;当词汇多达10万条时,“重码率”便上升到η=26.23%。这是什么概念呢?这就是说,平均每打4个字(词),就会出现一次重码,常常需要“手选”,五笔字型“盲打”的优势没有了,还有什么“效率”可言呢?

  设计汉字输入软件时,必须首先计算出“字集+词库”的“重码率”。因为“重码率”才是“输入效率”和“输入质量”的决定性因素。

  不妨以S1代表“字码”总数,S2代表“词码”总数,我们很容易用

  计算出各种情况下的“重码率”如下表所示:

  由上表可见,当“词库发烧”到10万条时,即使只有国标基本字集的6763个字,“重码率”也会陡升到26.23%,这个值是单字输入时的16倍、是1万条词汇时的4倍!这种情况下,任何人再想“盲打”提高效率,都是不可能的!可见“词库发烧”是“盲打”的“杀手”。未完待续……

五笔问题收录
登录 后发表评论
0条评论
还没有人评论过~