面临的问题
此前的声笔系列码词库是基于微软拼音、现代汉语词典、新华字典和成语词典,并采用了北语词频。结果,在约14万词中,只有约5万匹配上的频度,剩余的词组被赋与了-1的频度。虽然,北语词频做得很科学,有分类词频,也有综合词频。但是,北语词频比较陈旧,不能很好都反应词频的变化情况。另外,使用的以上词典数据年代比较久远,很多新的词汇都缺乏。
解决的方案
为了解决以上问题,我又结合了相对较新的(2012年的)搜狗词频数据。搜狗词频大于0的约有15万条词组,与原来的声笔系列码词组合并去重后,得到约20万词组。这些词组的具体情况为:二字词90330条,多字词110273条,共计200603条。将这些词组按北语词频和搜狗词频联合排序,并以北语词频为优先,在北语词频相同时再以搜狗词频排序。在最终码表中用的是搜狗词频,表现出的效果是:简码按联合频率设置,重码按搜狗频率排序。
具体的实施
声笔简码
首先将这20万词组用于声笔简码,四码重码数限制在29以内,即5页以内,并留最后一个空码位以便加快造词过程。按联合词频的顺序舍弃词频最低的词组后得到二字词78098条,多字词110210条,共计188308条。为什么要对重码数进行限制呢?这是因为翻页过多会严重影响键速,而且RIME的在线造词产生的词组都是放在最后的,选择起来非常麻烦。
声笔飞码X
声笔飞码X的词组没有截断简码,只有半有理的简码。它的词组编码与传统四码输入法类似,所以具有很大的四码空间,只需把重码数限制在11以内就行了。按搜狗词频舍弃低频词后,得到199923条词组。另外,在sbb空间安排与飞码K相同的525个三键高频二字词,并在此之外利用syb空闲空间安排69个高频二字词。最后,在sbs空间上放置1840个非强制的二字词,在sss空间上放置8100个非强制的三字词。
声笔飞码K
声笔飞码K的词组采用分级收录的方法,不收录用单字输入时效率更高的词组,最长码为5,没有作重码数的限制,收二字词40082条。三字词和四字词不分级,分别收录45276条和64953条。另外,利用spb空闲空间安排69高频二字词。由于sb字开始的二字词按s1b1b2的规则只有523个,有两个空码位fei和qia,所以在它们上面分别安放“否则”和“曲线”两个不规则词,以充分利用空间。
声笔飞码S
声笔飞码S在收录词组时,把重码数限制在11以内,收词151036条,包括二字词46287条,三字词39798条,多字词64951条。另外,利用spb空闲空间安排69高频二字词。
声笔快码X
声笔快码X的词组没有截断简码,只有半有理的简码。它的词组编码与传统四码输入法类似,所以具有很大的四码空间,只需把重码数限制在11以内就行了。按搜狗词频舍弃低频词后,得到197459条词组。另外,在sbb空间安排与飞码K相同的525个三键高频二字词,并在此之外利用sy和syb空闲空间分别安排95个和589个高频二字词。最后,在sbs空间上放置1840个非强制的二字词,在sss空闲空间上放置8100个非强制的三字词。
声笔快码K
声笔快码K的词组采用分级收录的方法,不收录用单字输入时效率更高的词组,最长码为5,没有作重码数的限制,收二字词77909条。三字词和四字词不分级,分别收录45243条和57734条。在sbb空间安排与飞码K相同的525个三键高频二字词,并在此之外利用sy和syb空闲空间分别安排95个和589个高频二字词。
声笔快码S
声笔快码S在收录词组时,把重码数限制在11以内,收词152420条,包括二字词47671条,三字词39798条,多字词64951条。另外,利用sy和syb空闲空间分别安排95个和589个高频二字词。
声笔双拼
声笔双拼是对传统自然码双拼的改造,它收四码词197456条,并利用sy和syb空闲空间安排了各166和963个高频二字词。最后,在sbs空间上放置XXXX个非强制的二字词,在sss空闲空间上放置8105个非强制的三字词。
声笔星二
声笔星二的词组是对星二的改造,它收四码词组198797条,把重码数限制在11以内,并利用sd和sdb空闲空间安排了各62和517个高频二字词。最后,在sbs空间上放置1848个非强制的二字词,在sss空闲空间上放置8097个非强制的三字词。