输入法原理解密

输入法作为每位网虫上网必用的工具软件,各大IT公司,无论国际IT巨头微软、谷歌,还是国内IT大腕百度、腾讯、搜狐,他们都纷纷推出自家输入法软件来抢占这个市场。那么输入法是怎么实现文字高效输入?作为我们普通的用户,我们自己能编写输入法么?大家最常用的是拼音输入法,下面我们就以这种输入法为例来一探究竟。

文字输入 认识码表文件

我们先来了解一下文字输入过程,比如要在百度搜索中使用搜狗输入法输入“电脑”作为关键字进行搜索。首先要切换到“搜狗输入法”,接着在键盘上键入“diannao”,此时在输入法状态栏会出现多个符合“diannao”编码的汉字或词组,我们选择“电脑”后就可以实现字符的输入了(图1)。

图1 选择符合编码的字符输入汉字

可以看到,文字输入过程主要是输入编码,然后根据编码选择所需字符的过程。因此Windows系统下汉字输入法实际就是:将输入的标准ASCII字符串(英文字符),按照一定的编码规则转换为汉字或词组。在将英文字符转换成汉字的过程中,码表文件(字库)起到了关键作用,码表文件有点类似英汉词典,将特定组合的英文字符与汉语字词一一对应起来。比如打开搜狗字库文件,就可以看到我们上面输入的“dian’nao”对应的正是汉语“电脑”(图2)。

图2 查看输入法字库编码

何以高效 输入法高效输入探秘

一款优秀的输入法必须要让使用者能够实现高效输入,这就要求每款输入法有自己的特色功能。

全面才会准确

日常使用中我们需要输入一些生僻字、网络流行语,如果输入法的字库不够全面的话就无法输入。现在的输入法一方面借助本地字库,另一方面则充分发挥“云字库”优势,可以将生僻字、网络流行语等一网打尽。比如必应输入法运用微软亚洲研究院的创新研究成果,优化了核心引擎,加上云端服务器的无限量存储和计算能力,即使我们输入类似“weiruankinecttaicoolle”中文拼音与英语相混合的字符串,它也可以智能识别(图3)。

图3 必应输入法强大字库和识别能力

输入法“猜你喜欢”

好的词库还需要搭配智能的算法,只有依靠智能算法才能将字库的功能充分发挥出来。现在大多数输入法能够自动分析用户的输入,选择和调整接下来文字显示的优先级,这样既可以可以大大降低词语拼错的可能性,同时方便用户高效选择输入,这种功能的实现是借助输入法后台强大的算法实现的。比如搜狗输入法,在你首次输入“dnahz”并选择“电脑爱好者”后,它就会“记忆”下你的选择,等再次输入“dnahz”,它就会智能判断你可能要输入“电脑爱好者”,于是将这一词组调整到优先选择的位置。如果你多次输入“dnahz”但选择的是不同的词组,这时输入法的算法程序会根据你选择的频率(选的最多),将你最有可能想要的结果放在优先的位置(图4)。

图4 输入法智能算法

统计是智能算法的核心

上面的根据词频调整,已经具有初步的学习功能了,而优秀的输入法还可以智能联想、智能纠错、智能组句。有时我们会发现,刚刚输入一两个字母,输入法就已经给出我们想要的长长的词组,非常智能。这些看起来有些神秘,但它们的算法核心其实很简单,就是统计。

聊天、写作、打报告,你每天究竟打了多少字,也许你自己并不清楚,但你所用的输入法却在默默地记录着,你每一次的输入每一次的选择,都会纳入它统计的数据中,正是根据这些数据分析得出你常用的词语,以及你特殊的喜好和选择。所以,并非输入法“聪明”,而是我们自己“出卖”了自己。

图5 谷歌拼音输入法提供的智能组句功能,可以很聪明地理解你的意图,即使输入的不是常见内容的长句,它也可以智能地进行组句供你选择

输入法搞“兼职”

除了识别编码的输入,现在输入法的扩展功能也越来越多。一方面是扩展字符的输入方式,比如为了方便用户输入不会读音但会写的汉字,搜狗输入法提供了手写组件,启动该组件后只要使用鼠标将字写出来,我们就可以在识别框进行选择输入(图6)。

图6 搜狗拼音的手写输入

另一方面则将输入法和其他相关的功能关联起来,比如谷歌输入法就整合其强大的搜索功能,在输入需要搜索的关键字后,只要点击状态栏的谷歌图标,这样即可自动打开谷歌的搜索页面进行搜索(图7)。

图7 整合搜索功能的谷歌输入法

你也可以自己打造输入法

从上面介绍我们知道,输入法的核心实际上就是码表文件,因此只要我们自己制作好码表文件,然后利用一些输入法生成器即可生成自己的输入法。如果觉得自己制作麻烦,还可以直接提取当前输入法的字库,比如搜狗输入法,打开设置属性窗口后切换到“词库”,然后在“词库选择”下拉列表选择“导出文本词库”,这样即可获得码表源文件(图8)。

图8 提取当前输入法词库

获取码表源文件后,我们既可以利用微软免费提供的“输入法生成器”,也可以使用第三方的“多多输入法生成器”来生成自己的输入法!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据