我有一个梦想:让中文输入得更快
江毅 2002.2
在西方社会呆了几年, 对西文在计算机上输入之便利真是太有感触了. 无论是在办公室
还是在家中,无论是写EMAIL还是写产品设计文件,无论是服务员做旅店住宿登记还是女儿写中学的
家庭作业,但见那键盘上十指轻弹,自然流畅,英语文句就如行云流水般在屏幕上奔涌而出.
时间倒推回一九九六年春天.当时我想学中文输入, 却发现不仅找相关的软件不容易,就是找到
了也甚难使用。这样,一种想利用自己掌握的计算机知识从实用的角度研究和改进中文输入的想法
便从心里油然而生,并将此付诸于行动.
现在,积六年之心血, 终于可以拿出来一个自认为还像点样的东西给大家看了.这就是我最近刚写
完的中文编辑输入程序,叫《汉王简》中文书写平台.我在其上实现了两个具创新思想的中文输入方法:
【秦王衡拼音】和【秦王衡形码】.
以下分别对我的主要思路做出描述(如果你下载了《汉王简》程序,可运行"帮助"菜单下的
《秦王衡输入法》演示幻灯片.那样更加形象)。
【秦王衡拼音】。
词组拼音是人们最常用的输入方法。我对拼音方法作了如下改进:
(1)拼音方法的最大弱点,莫过于重码较多。我解决的办法是:在输单字时,如果感觉重码太多,
可用键盘最左边一列键标出该字声调(如是输词组,则标出词尾字的声调).这样能把候选词剔除
掉约四分之三(四声取一声)。由于拼音输入时脑海中出现的本来就是字词的发音,故用声调做
限定较为自然。注意:我的设计不是通常意义上的带调拼音。因为在我的方案中四声可加可不加;
就是加也只对词的最后一字加。
(2)拼音的第二大问题,是敲键嫌多(双拼除外)。我的设计允许将拼音中的“ng”简输为
“g”,如 fang 输为 fag ,liang 为 liag。这一来敲的键可就省了不少。(既然传统上形码
的设计允许做省略,拼音编码当然也应该允许做省略)。
(3)对四声不准的人,为精确选字词(特别是单字), 可用键盘右边五个特定键标出单字(或词尾字)
的第一,二和末笔划(不用全标),以大大减少重码率。(和(1)一样,笔划键不是非加不可)。
这特别适用于“看打”的情形。
(4)词组方法大大加快了输入速度。但我们经常会遇到找不到词的时候(试想一下,如果敲
了一堆键却发现找不到词只好删掉重来会是什么感觉? )。因此,对于一个输入法,一个智能化
的,易用的“找词方法”是非常重要的. 我设计的找词方法会利用已敲的键序列,将其中各部分
对应的词或字(优先大词)找出来, 使您轻松的组成想要的词(新词自动加入词库)。具体做法
是:如果你输入时发现找不到词,可敲〈回车〉便加入找词过程。
(5)汉字输入的过程实际上是一个对字符串进行匹配的过程。采用计算“编辑距离”
(Edit-Distance,Dynamic Programming)的方法,与前缀匹配方法相结合,便可实现对输入字符
串的模糊匹配。这样大大加强了输入的容错能力(求编辑距离的方法能较好地处理少敲,多敲,
错敲,两键次序反的情形)。在汉字输入领域,我还没有见到过其他人使用这种方法。
【秦王衡形码】。
拼音方法虽简单易学,但重码多;且基本上是一种基于选字的方法,效率不高。
并且,由于选字造成注意力的经常转移,对写作思维造成干扰。这也是为什么热衷于
汉字输入的人最终要去学形码。
形码一般重码大大少于音码,但普遍难学。难学原因之一,是字根多,难记。
这是形码不可克服的问题。形码必然比拼音方法难学。
说到形码,“万码奔腾”的局面中,最多的就是形码。我对所见过的形码的印象是,
它们的字根分组常常围绕着字根的渊源、字义等抽象的东西来分组。这样造成的结果是,
同在一键上的字根互相很不象。我觉得这是致命的缺点。因为一般平头百姓并不知道或
不去关心字根的字义或来龙去脉,最好的字根分组应纯粹按照“形相似”的原则去分。
另外,有些输入法只将字根分配在26个英文字母键上,这造成聚集在一键上的字根过多
(有的输入法达到一键30个字根),且一键对应多组互不相象的字根。这也造成一个看起来
小实际上非常重要的后果:无法画出一个恰当的键盘字根分布图。而这个图对人们的记忆
非常有效。因为记忆字根分布,实际上就是记忆由字根到键位的二维位置的映射,而键盘
字根分布图则是此映射的直接表示。这种只用26个字母键的形码,应用到最新公布的汉字
大字符集,定会重新面对重码的问题。
还有,有些输入法的规则不自然。比如规定一字敲键四次,对于字根数小于四的,
要补字型识别码(如末笔笔画的笔画键);多于四的,则先敲前三字根,然后敲尾字根。
这使得在拆字时须对每字略加分析。此事看似不大,其实大大加重了输入者的心理负担。
我针对这些问题设计了秦王衡形码。它有如下特点:
1。字根在键盘上的排列较合理。采用了大键盘的思想,将字母键,数字键,标点
符号键,等均加以使用。这样,在一键上的字根较象,每键上字根也不太多。也因为如此,
本输入法可以提供可用的键盘字根分布图,以助记忆。
当然,为避免过多重码,仍有不规则的情形。但比较见过的其它形码,相信要少的多。
2.输入规则自然。人们写字时大脑中发生的事,首先是由字映射为以笔顺为序的字根
序列(这个映射有时并不一下完成,而是前面的字根提醒了后面的字根);然后逐字根写
下。因此最自然的输入规则,正是逐字根一一输入。秦王衡形码正是这样一种“全字根”
输入法。由于秦王衡形码选取的字根较大**,对于简体字而言,大多数常用字的码长不大,
二、三、四键可输一字。对于字根序列较长的字,则有〈任意匹配键〉帮助,也问题不大。
由于相似字根同处一键,而不少字根自成一字(成字根),必然地造成一键同时直接
代表多字的情形。除了指定一字(键名)用〈空格〉输入外,其它成字根用连敲其拼音首
字母二次的方法选出输入(亦可用F1,F2等键选字)。当然在设计中需保证这种选字的三
键序列不会成为任何其它字编码的前缀,不然其它字就无法输入了。
这种连敲拼音首字母二次的选字方法,由于需在大脑中反映出该字的音,会不会加重
输入者的心理负担呢?实践表明,问题不大。理由为:一,对象为成字根,不需拆字,故
由形到键的第一步映射负担小;二,只需在大脑中反映出该字的拼音首字母,不是整个拼
音序列。
3.由于字根在大键盘上分散开来,且排列上下了功夫,故重码少,不需经常选字。
4.键位布局基本合乎指法要求;即键入汉字时指序自然,不别扭。
5.输入标点符号及英文字母时无需切换状态。
6. 当对所输字某(些)字根不记得时(这是常发生的事),可键入〈任意匹配键〉以代之。
总之,秦王衡形码输入法的基本设计推理为:
(1)为实现逐字根一一输入汉字的简单输入规则,选字根时,只有选大字根**,才能
确保效率(只有简体字能作到这点)。
(2)选大字根,必然选出二百多到三百多个字根;不可能仅由26个字母键作键托,一
定要用到包括标点符号键,数字键在内的其它各键。〈SHIFT〉,〈CAPS LOCK〉等键原
只对输英文有意义,位置也不错(右〈SHIFT〉除外);固可用作正常键托。
(3)由字根到键的分配,遵循同一键上字根形状相似的原则;为避免重根过多,亦有
例外情形。由字根到键的联系,多数按形相似(那怕很模糊),有时按拼音。 p>
(4)同一键上会有多个成字根,须有办法选出它们。用连敲两下拼音首字母的办法较
自然,分辨率比用末笔笔画码要高。
(5)使用〈SHIFT〉及左
(6)设左〈ALT〉键为特别键“神”键,用来替代遗望了的一个或多个字根。以利于
学习和实际输入。
我的设计基本上按“形相似”的原则安排字根,故字根乍看多,实际等价字根并不多,
只有五十个(五十个键)。字根表看起来吓人,可稍下点工夫,这汉字输入可就化繁为简了!
以上描述中虽以形码篇幅为多,但从我把《秦王衡输入法》放到网上后所收到的反馈
信息看,以《秦王衡拼音》更受欢迎。这显示出使用拼音的人远比使用形码的为多。
中华文化,绚丽多采.中华语言,博大精深.如小生在有生之年,能为弘扬中华语文尽
微薄之力,也就不枉此生.
(jiangyi@hanwj.com)
参考文献[1]“中文字的机械化”,墨海,九七年七月第三三○期,《华夏文摘》。
[2]“江毅创立《秦王衡输入法》”, 二OO一年二月四日,陕西日报。
[3] Introduction to Algorithms, a creative approach, pp. 155-158,
Manber, U., Addison-Wesley, 1989.
参考网页[1] http://www.hanwj.com