rime的userdb.txt文件如何解读(d)

本文由 简悦 SimpRead 转码, 原文地址 kymotzhong.info

前言

情况是,“原因”、“元音”两个词在我这经常打架。我是搞语言学的嘛,总要输入 “元音” 这个词…… 但 “原因” 作为实际更常用的词理所当然要占据输入的第一位才是。

存在一些方法,比如说用额外的词表实现固定顺序,如这个 issue 所示。但我不想为此更改方案呢。

所以我就想到了更改用户词典中的词频。二进制格式不好改,那就改同步时生成出来的词频,然后在再次同步时因为词频总会取最大值,所以只要写一个很大的值,原来的值就可以安全地被覆盖。

需要强调的是,这是不推荐的做法。

实践

因为我的已经修改了,姑且取一个更早时另一部设备上的同步数据做示范吧。

yuan2 yin1  元音  c=253 d=3.46751e-11 t=317773
yuan2 yin1  原因  c=104 d=0.00588705 t=317773

c 是输入总数量,d 我不知道是什么的缩写,deviation 吗?但无论如何,改变 d 就能改变词的候选顺序,而且是越大越前。

为了最小化更改可能带来的影响,我在同步目录下新建另一个文件夹 dummy/,新建了个 terra_pinyin.userdb.txt,填入以下内容:

# Rime user dictionary
#@/db_name  terra_pinyin
#@/db_type  userdb
#@/rime_version 1.7.3
#@/tick 393271
#@/user_id  dummy
yuan2 yin1  原因  c=500 d=114514 t=393271

然后同步。这时再看同步时产生的 terra_pinyin.userdb.txt,发现 “原因” 的 d 变成了 10000,看来还是有上限的呢。

总之这下就有保证了。

另外,不建议对单字使用这种方法。我试了一下,会导致简码时也排在最前,影响正常输入。比如,任意拼音以 l 开头的字如果经过这样加工,会排在最常用的字之一——“了” 字前面。是两个字以上的、而且是确实常用的词汇的话,那还好些。

© kymot 2024 保留部分权利。
若无特别声明,内容均以 CC-BY 4.0 许可证发布。
本站没有评论系统,但接受邮件形式的评论和交流。
粤 ICP 备 2021086886 号
生成器:Quarto;主题:Litera。