Repository navigation
Move 喫茶小舖/純喫茶 to TWPhrases/HKPhrases - #1027
Hidden character warning
Conversation
7c115bd to
2b90022
Compare
|
PR 中实际的改动似乎远比标题中所说的复杂,不仅移动了两个词条,而且调整了它们所属的词典层级、改变了 另外,我理解 |
|
這個在 #447 就說過了。 加入這些詞條是為了防止 t2tw/t2hk 的階段出錯(因為 s2t 本來就會把「纯吃茶」轉換成「純喫茶」,所以改「STPhrases.txt」毫無意義。 |
|
https://opencc.js.org/compare?t=%E5%90%83%E8%8C%B6%E5%B0%8F%E9%93%BA/%E7%BA%AF%E5%90%83%E8%8C%B6
s2t 的转换正确是因为该规则中「吃」转换为「喫」。 因为缺少了 STPhrases.txt 的词组规则,s2twp 输出并未如 #447 的预期修复,否则 s2twp 应该已经能正确转成「喫茶小鋪/純喫茶」了。 |
|
好吧,我忘了 #475 這個萬年 BUG 還沒修,所以有必要在 STPhrases.txt 也加入「纯吃茶=>純喫茶」和「吃茶小舖=>喫茶小舖」。但這個 PR 的修正還是有必要存在,否則 t2tw 會因為「喫=>吃」的規則把「純喫茶」轉為「純吃茶」。 然後目前 PR 還沒更正 STPhrases.txt,測試卻全部通過,這表示測試引擎有問題,以致於和實際執行的情況有出入,請大大們修正。 |
|
空的 TWVariantsPhrases、HKVariantsPhrases 文件已经另行添加,此 PR 不会成为 blocker。 |
这个问题搞清楚了。 当「吃茶小铺」及「纯吃茶」没有加到 STPhrases 中时,不一定总是有分词错误的问题。 一旦字典后续加入了上述子串,就会触发分词错误。所以在现有程序框架下,为保证地区词转换的确定性,还是建议给 TWPhrases key 的简体字版加入 STPhrases,如 #1193 所做。 之前 #1027 (comment) 提出的问题,不是因为没加 STPhrases,而是因为此前从未有 HKVariantsPhrases、TWVariantsPhrases 的 overrides 文件,导致第一层转换「喫茶小舖」后又被 variants 字表中的「喫 -> 吃」规则转回「吃茶小舖」。 |
我沒注意到 s2twp 是三層轉換:
而 tw2sp 是二層:
後者似乎比較合理,s2twp 應該可以改成第二層轉換用 TWPhrases.ocd2, (TWVariantsPhrases.ocd2), TWVariants.ocd2 |
|
tw2sp 原本也是三层,变成两层是在 #366 修改的,解决了一个因次序错误导致转换失效的问题;s2twp 没有遇到过类似问题,于是还是维持三层。 理论上只要 TWPhrases 输出里不出现 TWVariantsPhrases / TWVariants 的输入,TWPhrases 和 TWVariantsPhrases 的输入不重叠,大体上应该是没有问题的。 |
|
出問題的機率不低吧,假如之後有某個專名在 TWPhrases 輸出「蔘」「鍼」等字,都可能再被 TWVariants 誤轉。既然現在已經發現邏輯漏洞及與其他方案的不一致,趁沒出問題前先修正比較好吧? |
#447 當時加到
TWPhrases只在 s2twp 有作用,應該加到另一組和 TWVariants 合併的詞典,才會在 s2tw/t2tw 有作用。另外補上 s2hk/t2hk。