首页 > 代码库 > 输入法畅想

输入法畅想

前段时间结识了两位创业做输入法的朋友,花了一个下午和他们畅聊了下输入法,也开拓了下自己的思路,于是写此博文以记之。

目前中国PC市场的输入法基本上已经被搜狗垄断了,剩下的就是QQ,谷歌,百度等几家大公司的输入法,当然也有拼音加加这种老牌输入法的死忠粉丝,所以可以说PC市场的输入法大局已定,没有什么机会了。而眼下手机输入法还是一片蓝海,虽然搜狗、百度、QQ等手机输入法都在攻城略地,但是仍然是大有可为的一片市场。

在国内输入法之外,国外输入法是一个更大的市场,在PC时代,国外拉丁文用户可以不需要输入法,直接在键盘上打字即可,但是在智能机时代,没有了键盘,即使输入英文也得用一款输入法软件才行。所以国外手机输入法市场是一个比国内输入法市场要大好几倍的市场。

现在无论是在手机输入法市场上风生水起的触宝输入法,还是能够跨平台的RIME输入法,他们都有一个共同的特点,就是同一款输入法软件,只需要下载不同的词库,就可以实现不同的输入法。也就是说输入法软件本身只是做了一个通用的框架,通过不同的配置文件和核心词库文件来实现不同语言,不同输入方式。这是一个发展趋势,以后输入法可能都是这样被统一。

在输入方式上,中文的输入最常见的就是拼音了,其次时五笔,然后就是些乱七八糟的各种国人发明的输入方式。在台湾流行的是注音输入法和仓颉输入法,其实就是对应大陆的拼音和五笔。英文或者说拉丁语系的输入方式就简单多了,常见的就是键盘上直接输入,还有就是现在比较流行的滑动输入Swype。之前看了吴军老师的《数学之美》,里面也提到了输入法,对于中文而言,拼音输入才是更接近人本性的一种输入方式,虽然现在的拼音输入法重码率高,导致输入效率还不够高,但从长远来看,拼音输入法必将打败五笔输入法。其实现在搜狗拼音已经做得很不错了,整句整句的输入,使得重码的几率低了很多。

说到搜狗拼音输入法,这个目前大陆输入法市场的老大,那么就必须要说到搜狗输入法当年做得很成功的词库。输入法的词库分为三部分:

  • 核心词库
  • 分类词库
  • 用户词库

核心词库是一个语言的核心,定义了最常用的词汇,核心词库的好坏直接决定了输入法的好坏。前面提到输入法框架,只需要配上核心词库和输入设置,就可以变成一个全新的输入法。核心词库是对一个语言通用的,还记得当年谷歌输入法出来的时候,就被搜狗告了,就是因为谷歌输入法盗用了搜狗输入法的核心词库。

分类词库(细胞词库)我不知道是不是搜狗输入法的首创,但搜狗输入法是做得最成功的。分类词库是对某个特定人群才使用得到的词库,默认情况下用户是没有分类词库的,用户可以根据自己的情况下载对应的分类词库。比如笔者是四川人,搞计算机的,所以就会下载“计算机词汇”,“四川地名”等分类词库。因为分类词库是针对特定人群的,所以对于一个北京的销售人员来说,就没必要下载笔者的这些分类词库。搜狗成功的将分类词库的创建使用众包的方式交给用户自己来完成,使得分类词库蓬勃发展,现在已经有27K+个词库了。

用户词库是针对用户个人而创建的词汇列表,该词库只对用户个人有用,对其他人来说,可能没有任何意义。比如笔者在写Email时经常会输入朋友的姓名,绰号等,这些都是笔者的好朋友的姓名,绰号,不会存在于核心词库和细胞词库中,创建这样的用户词库对笔者下次输入时非常有帮助,但是对于其他人来说,根本永远不会输入这些词汇,或者对别人来说,这根本就不是词汇。搜狗很好的将用户输入过的这些用户词库记录下来,然后同步到用户账号的服务器数据中,这样既方便了用户使用多台电脑时词库同步的问题,也避免了重装系统导致的数据丢失的问题。

凭借着对这三种词库的特点和其他优化,使得搜狗迅速占领了市场,接下来搜狗输入法就发展其他各种花哨功能去了。毕竟当年大家的输入法还是只能做到60分的时候,搜狗输入法能够做到90分,那就是极大的成功,现在大家都能做到90分了,接下来搜狗再大量投入也只能把90分做到95分,对普通用户来说,改善不明显,所以只能靠不断的扩展新的功能来进一步扩大用户群。

输入法的竞争其实就是词库的竞争,毕竟现在输入法框架已经很成熟,软件上的差异越来越小,大家都能做到很高的正确率。核心词库是由专家仔细精挑细选出来的,适用与每个人;分类词库是通过众包的方式,由各行各业的热心人士统计筛选出来的,网上都可免费下载;个人词库是由用户在使用输入法的过程中自己创造出来的,具有一定的用户粘性,使得用户不愿更换其他输入法。对于分类词库和个人词库,“深蓝词库转换”都给出了很好的解决方案,帮助用户从一种输入法切换成另一种输入法。比如之前一直用搜狗输入法,现在想换成谷歌输入法,但是又觊觎搜狗输入法的细胞词库,那么可以用深蓝词库转换将搜狗细胞词库转换成谷歌拼音词库,导入谷歌拼音。对于个人词库,也是如此,只需要在搜狗输入法中将个人词库备份,然后使用深蓝词库转换将备份文件转换成谷歌拼音的词库导入即可。

虽然深蓝词库转换解决了输入法切换的问题,但是还有一个摆在所有输入法面前的问题,用户词库从哪里来?必须让用户在第一次输入时一个字一个字的选吗?如果我之前用的输入法没有设置账号同步到服务器,或者用户词库丢失了,难道真的必须让用户再痛苦一会,一个字一个字的重新选。

用户之前已经进行了大量输入,比如用户的QQ聊天记录、Email,或者写博客,QQ空间,写微博、说说、心情、微信等,更或者用户发表过很多论文,写过书、网络小说等;这些都是构建用户词库的素材,如果我们能够分析这些素材,那么就可以构建一个强大的用户词库,使得用户的输入法更加个性化,输入效率自然更高。

收集这些用户词库的素材就是一个比较麻烦的事情,毕竟用户输入的地方太多了,然后就是进行解析,这需要对汉语进行分词,这是个麻烦的事情,最后就是将解析后的语料进行处理,生成用户词库。我想下一个项目能够做做这一块,毕竟这东西对很多人来说,是个好东西!