码表就是你汽车、自行车上的里程表……

我们在输入法中所说的码表,实际上是表格、表单的意思。

“码表也是词库”

如果我说码表其实就是个私人小词库,可能这样你就能够更容易理解了。

某种程度上来说,这个说法是正确的,当然,就现在的输入法来说,其实词库都应该叫做“矩阵”,它已经不是当年字面意义上的“词汇数据库”了,不过码表,依旧是这样的道理。

从表到库的演变

最早的中文输入法,显然是没有现在这样强大的算法和数据库的,我们就是单纯的用英文编码对应中文文字,比如五笔型输入法,只需要包含常见 3500 个中文字的编码,基本上用户就能用这个输入法进行日常使用了对吧?毕竟中文语句就是这么写字组成的——这样,我们就有了一个表。

后来,有了拼音输入法,这个表就变大了,毕竟拼音的重码实在是太高,于是人们收集尽可能多的词汇放进去(编码越长,编码容量就越大,单个编码重码越少),你看,我们说的“表”已经容纳不下这么大的数据,于是用上了数据库,就变成了“库”。

所以我们说,其实码表就是小型词库。

码表是固定不变的

与智能输入法的词库不同,码表中的词频,是不会自动改变的。比如你的码表定义了 “你” 是首选,“泥” 是次选,那么不论你在输入法里选多少次“泥”,它都不会变成首选。对于习惯智能输入法的你来说,这可能是一件恐怖的事情。

如果你每天回家,都把门钥匙挂在门边固定的位置,那么你就不会在出门的时候找不到钥匙了。

不过,如果你每一次输入的英文字母都能对应固定的文字,那么一旦你习惯了,就会非常地有“信心”(对于很多正式场和我们要求打字的准确性),因为你知道某个英文字母组合必然是这个结果,固定的结果能够大大提升你的打字效率,不论是速度还是正确率。

有正是因为码表是“固定不变”的,所以码表的作者都会极大程度利用码容量,对于普通拼音来说,由于“智能”的作用,你可能在输入nni得到的首选结果是一样的,但在码表中,则必然是不同的结果,这样就得到了一个很有意思的成果:

键盘有 26 个字母,每个字母对应一个中文字简拼,这是一简; 每两个字母对应一个中文字,这是二简;

包含一简和二简字,你就可以极快地输入一共 433 个常见单字!要知道,这些字几乎涵盖了日常大部分文字。 如果这还不够,我们再加上“次选”的概念,在输入法中你可以方便的上屏次选(macOS按分号,iOS按shift),那么就包含了 866 个常见字呢!

码表是高度个性化的

一般对于高手来说,他们都会“养”自己的码表,根据自己的输入习惯不同来优化自己的码表。这些都和码表用户个人的性格、职业高度相关,拥有自己的码表,就好像有一个通用的用户词库一样,你的习惯是可以随便备份和导入的,只要稍微改改格式,就可以导入到另一款支持码表的输入法中继续打字了。

候选词的数量是最大的区别

码表都是人为编撰的,所以它是精确的,一般来说码表的体积都不会太大,从几万条到十几万条不等,但不会有更大的了。

重码率不是考核一个码表优秀与否的唯一标准,但习惯上大家都会很看中它,所以,通常挂码表后一个编码的候选只对应有一或两个候选,很多用户奇怪为什么自己的候选没有了,其实是他们错误地加载了码表。

这只是开始

实际上,对于双拼的码表来说,这才是刚刚开始,由于双拼天生比全拼码长要短(只需要两个字母便可以表达一个发音),所以码表一般采用音形结合的方式,即通常码长为 4 ,前两码为发音,后两码为字形,以此大大降低码表的重码率(针对单字而言)让一些生僻的文字也能快速上屏,这一点在键入专业词汇、人名地名以及古文等要求高度精确又不那么常用的场和中尤为突出。

现在你知道大多数辅码是怎么来的了,有很多双拼码表,单字形码部分拆开了就是单独的辅码码表呢。