rime / librime

Rime Input Method Engine, the core library
https://rime.im
BSD 3-Clause "New" or "Revised" License
3.35k stars 546 forks source link

关于用户数据库文件分散与收敛的问题 #135

Closed shz2050 closed 7 years ago

shz2050 commented 7 years ago

使用rime引擎一段时间了,最近我才发现不同的输入法案它对应的用户数据库是分开的。比如 luna_pinyin.schema所对应的用户数据库是luna_pinyin.userdb,而double_pinyin.schame所对应的用户数据库是double_pinyin.userdb,他们是两个完全分开的数据库。现在我想通过shema中translator@user_dict参数指定数据库名称,来实现多个输入方案的用户数据库收敛(共用一个数据库),从而方便后期维护。

由于牵扯到数据问题,所以想来请教一下不同输入方案共用一个用户数据库会产生什么影响么?

lotem commented 7 years ago

你確定有 double_pinyin.userdb?什麼版本、方案修改過嘛? 希望你再確認一下,我無法重現這個問題。 雙拼和朙月拼音應該是共用詞典的。這裏雙拼指定用 luna_pinyin 詞典,包括用戶詞典也是共用的。 https://github.com/rime/rime-double-pinyin/blob/master/double_pinyin.schema.yaml#L87 共用詞典的前提是基於同一音系(語言學意義上的)。雙拼與(不帶調的譌)全拼有一一對應的關係,都用來拼寫現代標準漢語,因此可以共用詞典。拼寫的不同雙拼通過定義拼寫運算規則生成不同的棱鏡文件(雙拼→詞典編碼映射表)實現。 https://github.com/rime/rime-double-pinyin/blob/master/double_pinyin.schema.yaml#L53 https://github.com/rime/rime-double-pinyin/blob/master/double_pinyin.schema.yaml#L88

lotem commented 7 years ago

當前實現中,部署規則要求詞典借用其他方案的,prism 應指定爲與本方案同名。以避免因拼寫的差異影響(覆蓋借用方案生成的棱鏡文件)其他方案。

幾個概念之間的關係: 方案 1:1 棱鏡 方案 N:1 詞典,N>=1 棱鏡 N:1 詞典,N>=1 固態詞典 1:X 用戶詞典,X in {0,1}

shz2050 commented 7 years ago

不好意思,是我没弄清楚,当时只是举个例子,实际上是想将两种不同的输入方案的用户数据库合并。 我尝试了将明月拼音和笔画输入的用户数据合并,遇到了问题,也就是您在回复中提到的

共用詞典的前提是基於同一音系(語言學意義上的)。雙拼與(不帶調的譌)全拼有一一對應的關係,都用來拼寫現代標準漢語,因此可以共用詞典。

现在我又将这两种输入法的用户数据库分离开了。

lotem commented 7 years ago

筆畫、英文、自定義簡寫,都不要混入拼音詞典。否則會擾亂拼音音節切分。