如何开发输入法

我作为一名开发者,每遇到一款出色的软件产品就会情不自禁的问自己这是怎么开发出来的,假如我手上有资源我会怎么来做。长期以来我都在想如何开发输入法,近期有了时间,整理出来与大家分享。

输入法开发有两个部分的工作要做,其一是与操作系统提供的输入法框架集成,其二是把用户的输入字符串转换成输出候选词列表。这两个部分可以独立进行以缩短开发周期。如果设计得当,要把输入法移植到其它的操作系统时,只需研究目标操作系统的输入法框架,集成进去即可。

如何开发输入法_第1张图片

第一部分的花样并不多,只要踏踏实实的按照操作系统的要求来做就可以了,但一定要时刻牢记用户体验,这是门面问题,也是能否能赢得用户青睐的关键问题。

第二部分的花样就多了,但是核心还是要高效和准确的完成从用户输入字符串到候选词列表的转换。在这里无论怎么强调高效和准确都不过分。高效和准确意味着用户可以用最短的时间和最少的击键来完成期望的输入。转换是需要规则的,那我们怎么来建立这个规则呢?通过人为建立,或统计模型建立。五笔(五笔已经被淘汰了,加以时日就会消失)就是人为建立转换规则的示例,而目前主流的拼音输入法都是通过统计语言模型来建立转换规则的。首先要依据汉语统计语言模型建立音节统计语言模型,这样就可以将类似cidian(词典)的输入字符串分成ci'dian两个音节。将用户输入的字符串切分成音节的过程类似于依据英语统计语言模型对英语进行切分的过程。然后再将切分好的音节转换成候选词列表,如将ci'dian转换成[词典、辞典、此点、磁电、......]。日语、韩语的转换应该和汉语的转换相似。

以上这些都是纸上谈兵,要开发一款广泛使用的输入法,还要面对大量的挑战,那将是一项艰苦的工作。

----------------题外话--------------------

1、Google为什么要开发拼音输入法?

其一、提高品牌形象,这只是个冠冕堂皇的理由,也可能根本就算不上个理由。

其二、占领桌面,甚至可以将搜索引擎集成进来。也许在有一天你突然会发现在拼音输入法中按某个快捷键竟出来了搜索结果(:

其三、在输入法方面进行实验,储备技术和人才。这样可以将在桌面上成功的拼音输入法快速移植到Android操作系统和Chromium操作系统,加速这些操作系统在汉语区域的应用速度。在这些操作系统上的其它中文输入法可以说都在为Google打工。

其四、输入法背后蕴藏着巨大的数据金矿。挖掘这座金矿可以更好的了解人们使用输入法的习惯,建立错误输入概率模型,提高拼写检查类程序的准确性。例如可以统计出将r错误的敲击成e的概率,然后做点什么。如果在和某个帐号(或某个IP)联系起来,我们大家也就真的没有任何秘密了,所以选输入法也要选比较靠谱一些的。

其五、暂时还没想到,不过一定还有很多......,你想到了可以留言 (:

2、Google拼音输入法抄袭搜狗拼音输入法的词典?

凭借Google的计算能力和驾驭统计语言模型的能力是没有必要抄袭搜狗拼音输入法的词典的,就凭这一点,那次事件就可以被看作是一次推广手段,达到的效果不错但并不高明,还不如像推广Chrome浏览器那样在首页中直接给个链接呢。

你可能感兴趣的:(输入法)