「鼠须管」词库的同步和备份
luna_pinyin
luna_pinyin.sgmain
luna_pinyin.hanyu
luna_pinyin.poetry
luna_pinyin.cn_en
luna_pinyin.emoji
luna_pinyin.kaomoji
...
name: 词典名称,被 luna_pinyin.extended.dict.yaml 调用时需要列在import_tables:后面;配套输入方案的 yaml 建议和这里的命名标识一致;
version: 管理词典的版本;
sort: 词条初始排序方式,by_weight(按词频高低排序)或 original(保持原码表中的顺序);如果选择 sort: original 选项按词条在词典中出现的顺序排列,忽略词频。
use_preset_vocabulary: 填 true 或 false,选择是否导入系统词汇词频。
添加到词典中的词汇最好转成繁体的,这样切换成繁体输入方案时依旧能使用。用系统自带的 ⌃⇧⌘C 即可实现。
词汇的词频
部署输入法时,引入的词典(如.dict.yaml)、用户词库以及与输入法自带的系统词库,共同形成编码集合。含多音字的词,系统词库一般都有,如果没有才要考虑在 .dict.yaml 中增加这个词并注上音。系统词库中已经包含了完整的单字注音和罕用读音降频处理,所以通常我们新增 .dict.yaml时只需要输入词汇部分即可。
dict.yaml 文件中的词汇一般是不需要添加词频的(词频添加模式可参照 easy_en.dict.yaml),而dict.yaml 生成的 table.bin 固态词库和用户词库的词频基准也不同,用户词库的词频优先级更高,也就是说输入时我们选择过的词会排的更靠前。
如果要干涉 dict.yaml 中词汇的词频,决定它的默认候选位置,可以在词条后添加一个比较大的数值(数值是相对的,究竟多大取决于已存在的词频数值,部署时所有词汇的词频权重数值在计算后会形成统一,例如百分比方式)。
easy_en.dict.yaml 中的词频来自于词典源的基础数据,dict.yaml 里面的词频是从语料统计来,其作用是决定候选字的初始顺序,让那些用户从来没打过的词之间也有较好的排序,同时对重码字、词的排序起作用。固态词典中的词频不影响自动调频,只有用户的输入影响自动调频,通常说的调整词频是对用户词库的动态调节。
鼠须管在设计上分设「固态词库」和「用户词库」,不仅仅是为了做优化,两者所记录的词频意义不同,其数值是不可比的。即使固态词典里的词有很高的词频,但那并不能代表用户的输入习惯,因为用户并没有真的输入过那么多次。
为了写这篇稿子又翻了一遍 Rime GitHub 的帖子,很多是很早以前的讨论,不排除后面策略上存在新的变化,不过本着学习和明理的原则,了解这些多少是有益处的,就像学过 DOS 的人面对 Windows 一样,起码在分析问题时能丰富自己的思路,有时候一个知识点上的储备会带来不同的分析问题的角度。
参考文章:
Rime 碼表與詞典
固定词、其他词和自造词调频问题
用移動硬盤同步RIME用戶詞典的樣例
飞利浦照明怎么样?怎么选择灯具?