英文字母只有26个,可以一个键盘一个字母的输入。
中文常用字有3500个,中华字海中收入全量简体字有8万5千个,GB2312 编码收入汉字20902个。也就是说无法在一个汉字一个键盘的方式实现输入。
现在回头看,中文输入法,基本经历了自然音节编码输入,到偏旁笔画拆字输入,再回归自然音节输入的过程。
输入法输入汉字的快慢与汉字编码长度相关,也就是输入汉字需要敲击几次键盘。
一、输入法前生今世
70年底末,个人电脑开始诞生。
80年代初,个人计算机开始使用五笔和拼音输入。
五笔输入法快速,但是学习成本高,需要背诵词根,严重制约了电脑的普及。需要经过长时间的训练。
拼音输入法,常常需要翻很多页才能找到所需要的汉字。
90年代,拼音输入法软件开始支持词组输入和整句输入,能够做到一边打拼音的同时显示汉字。
1993年朱守涛先生发明智能ABC输入法,并被微软收购纳入windows系统中。
1994年的自通输入法,1996年的神拼输入法,支持汉语整句输入。然而,整句输入错误率高没能解决输入汉字不方便的问题。
1998年,谭亚军发明拼音之星软件,支持实时显示,具有字母输入容错功能,没有词也能自动推荐类似的词。
1999年,出现了拼音加加,自由拼音和考拉输入法,支持不切换中英文的情况下,直接Enter输入英文,提升了中英文混合输入效率。
2000年,智能狂拼提供更智能的输入,紫光拼音在考拉输入法基础上发展而来,提供更大词库,并具有了智能组词。
2006年,搜狐公司推出搜狗输入法,该输入法基于搜索引擎技术的新一代拼音输入法产品,用户可以通过互联网备份自己的个性化词库,搜狗拼音输入法一经推出很快取得巨大成功。
谷歌、腾讯、百度和微软也相继推出类似的智能拼音输入法,谷歌拼音输入、QQ拼音输入、百度输入法、必应输入法。
智能手机时代,基本就是搜狗、百度、google、必应输入法的天下了。
目前大家使拼音打字是相当快了,速度已远超英文输入。
二、输入法的数学原理
输入法的本质时将方块形状的汉字输入到计算机中,将人为约定的信息记录编码-汉字,转化为计算机约定的编码(如UTF-8)的转化过程。
1、输入法与编码
键盘上有26个字母 10个数字。
汉字编码分为两部分:对拼音的编码和消除歧义的编码。汉字编码的长度取决于这两方面,只有两个编码都短时,输入才够快。
双拼的主要问题:
一是键盘是只有26个字母,而汉字的声母 韵母有50多个,很多韵母共用一个字母键,增加了歧义,就需要不断的翻页。
二是增加了每次击键时间,人在脱稿输入时,拆字过程会使得思维变缓慢。
三是双拼对读音的容错性不好,前鼻音an、en、in和后鼻音ang、eng、ing,卷舌音ch、sh、zh和平舌音,编码完全没有相似性。大部分人前鼻音和后鼻音、卷舌音和非卷舌音多少有点分不清,在输入声母和韵母后,翻了好几页也没有找到自己要得字。
2、输入一个汉字需要敲击几次键盘?
GBK2312 一共有6700多个常用汉字,每一个汉字出现的概率:
P1, P2,P3,... , P6700
大致估算需要10个比特。
输入法有26个字母,每个字母可以代表log26大概是4.7比特,
也就是说平均一个汉字需要敲击10/4.7 约等于2.1次键。
如果把汉字组成词,平均输入一个字可以少敲几次键盘,
不考虑上下文情况下,以词为单位统计,汉字信息熵大概是8bit,则平均输入一个汉字要敲击8/4.7 约等于1.7次键盘。
考虑上下文情况下,对汉语建立基于词的统计语言模型,汉字信息熵可以降到6bit 左右。则平均输入一个汉字敲击6/4.7 月等于1.3次键,那么这是汉字的输入已经比英语快得多了。
紫光拼音,是通过建立大词库解立大词库,词越来越多,越来越长,甚至将整句唐诗作为一个词,没有根本做到利用上下文。
利用上下文最好的办法是借助语言模型,而语言模型对内存要求高,而输入法不能占有过多的内容,因此目前google、搜狗、百度、微软几家输入法基本在同一档次。
3、拼音转汉字
其实就是拼音到汉字的转换解码函数,每输入一个字母,就类似导航中车辆每走一步,利用动态规划方法不断调整输出。
4、个性化语言模型
现有汉字拼音输入法距离信息论极限还有很大距离,从理论上讲,只要语言模型足够大,拼音输入法的平均敲击次数就可以接近理论值。
个性化的特点是,不同人写东西主题不同,用词习惯不同,说话和写作水平不同,应该各自有自己的语言模型。
通过不断收集个人写的内容,训练一个特定的语言模型,可以较快的接近信息理论值。实现快速输入的目的。