在上个世纪,计算机刚被引入中国的时候,人们都被这灵巧而又强大的机器所震撼了。最基础的算数功能就不用说了,甚至还可以处理文本,打表格。即使是在几十年后的今天,计算机的底层架构也和最初的计算机无异。但是这神奇的机器在中国的推广遇到了极大的阻力,而这阻力不在计算机身上,这阻力竟深深地源自咱几千年的中华文明。
这个问题就是汉字的输入。
计算机的输入方法普遍是使用键盘输入,而键盘上只有数字,符号和26个拉丁字母。拉丁字母是世界上最通行的字母文字系统。拉丁字母作为罗马文明的成果之一,随着征服推广到了西欧的广大地区1。而后很多其他国家在拉丁字母的基础上加入了一些额外的标注,形成了衍生拉丁字母语言系统。在计算机被发明的西方,键盘由拉丁字母组成是非常理所当然的事情。但是当我们中国人们开始尝试使用计算机后就会发现,我们使用的是和拉丁字母语系毫不相干的汉字。这可如何是好。
最容易想到的方法当然是发明一种可以直接打出中文的键盘,但是这个想法显然非常不切实际,因为拉丁语系可以直接用键盘打出是因为那些语言只由这些拉丁字母组成,而如果要发明一个中文键盘,那么那个键盘上面怎么说也得要有几千个字。你可能会想,如果用拼音不就行了。确实,拼音完全可以用标准的qwerty键盘打出(如果将ü打为v的话),但是当时的计算机技术还不算发达,用拼音打字会经常会出现一个字找很久的情况,而且在当时几乎不可能一次性打出一个词组来。于是一个叫王永民的人发明了一种叫五笔的输入法。
五笔输入法的基本原理是将一个字拆为几个字根,键盘上的每个键对应几个字根,把这些字根组合到一起就是一个字啦。五笔的名字来源是五笔输入法将键盘分为五个区,每个区分别对应横竖撇捺折(一丨丿丶乙),而每个区的每个键几乎也对应这五个笔画。只要一个人能够把键盘上的字根分布表记住,并且知道如何将一个汉字拆分为多个字根,那么他就会打中文。
因为拼音实际上是建国之后才被通过,所以那个年代的人会使用拼音的人很少,虽然对于我们现在来说有一点难以想象,但是实际上五笔的学习难度在当时是要比拼音低的。所以在拼音输入法流行起来之前,有各种中文输入方法陆陆续续地涌现出来,比如郑码,仓颉等2 。
进入了二十一世纪之后,计算机变得愈加快速,而且互联网也愈加流行,拼音输入法逐渐的从一开始的简单,笨拙,变得越来越智能。相信大家小时候都使用过智能ABC这款输入法,而这款输入法可以说是拼音从被落寞到崛起的一大转折点。自从这个输入法以后,拼音输入法越来越容易使用,再加上新中国的学生几乎都必须掌握拼音,这使得拼音输入法的学习成本大大降低。而后出现的云词库,云联想功能也使得拼音输入法的准确率大大提高,但是云技术的出现带来的除了便利,还有人们的担忧,这个问题我们稍后进行讨论。
很多人都不知道,其实拼音输入法不是只有一种,还有一种拼音输入法叫做双拼,这些输入方式的基本原理是将一个拼音拆分为声母和韵母,分别只对应一个键,这样每个汉字只需要两个键就可以打出来,不像全拼有些字需要多至6个键才能打出来。常常拿来做例子的就是双拼这两个字,如果用全拼打出的话需要9次击键(shuangpin)而如果使用小鹤双拼的话只需要4个键(ulpb)。虽然减少了击键次数,但是双拼和全拼本质上有着同样的缺点,那就是经常需要选字。所以双拼和全拼一样也是拼音输入法智能化之后才流行起来的。
除了五笔和双拼,还有非常多其他的输入方案,但是五笔、全拼以及双拼可以说是大陆地区最常用的输入方法了。
我们今天的故事开始于上个世纪…好吧也不用扯到那么远。二十一世纪以来的大数据技术改变了我们的生活方式。这个时代数据就是金钱,大公司通过我们日常使用的软件收集着我们的个人数据,包括我们的浏览记录,购买记录,甚至聊天记录和输入法的输入记录。而最后这一个就是我们要讨论的。很多人会说,输入法收集输入记录是为了做出统计而使得输入法更加智能。当然,这是一个非常有效的论点,但是我们谁也不能保证这些公司不会拿这些数据去干一些别的事情。
写了这么多,终于轮到我们故事的主角出场了——rime输入法。
Rime (Rime Input Method Engine,这个名字是一个递归缩写) 是一个跨平台的开源输入法,由佛振编写。这个输入法最大的优点就是高度可定制化,从皮肤到词库甚至到输入方案本身都可以自定义。
rime的自定义程度高带来的后果就是它的自定义比其他输入法麻烦得多,除了修改输入方式和选择皮肤以外的功能都要编辑文本形式的配置文件来完成。
用文本的方式编辑配置文件的方式对于我来说并不陌生。vscode的早期版本就几乎只能通过编辑json文件来配置,不过后来图形化设置界面做得越来越完善,相应使用门槛也降低了。但是rime输入法就没有这样对应文本配置文件的图形设置界面,这算是rime一直挺冷门的原因之一。
rime另一个缺点是默认的词库不算非常好用,很多流行词汇都没有收录,要磨合很久才能变得好用。这个问题对于拼音用户来说非常的致命。
经过一番的搜索之后,我找到了一位好心网友分享的自用的rime配置文件,这份配置文件是尽量使得搜狗输入法用户能够轻松迁移到rime而设计的。这个输入方案就是四叶草拼音输入方案。
这个方案使用了非常多的词库资源,似乎还使用了一些机器学习的算法,最终得到了一个算是非常好用的词库。如果你也想要使用rime输入法,那么这个输入方案算是不错的入门。
Rime这个开源项目可以说是非常优秀,但是也有许多可以改进的地方。比如它的同步功能需要借助第三方的同步网盘实现,而且只能同步用户通过打字积累的词库,不能同步配置文件。再比如他没有很多输入法声称拥有的上下文联想的功能,它纯粹是按照词频来输出的。
在下一篇文章我将会说明如何将搜狗导出的词库文件转换为词库文件并写入到你自己的rime配置文件中。再之后的文章我可能会介绍搜狗细胞词库文件格式以及如何将其转换为rime可用的格式。