OpenCC
OpenCC copied to clipboard
在 s2twp 下,"芯片面积" 的翻譯問題
想請問為何
- "芯片" 可以被翻譯成 "晶片"
- "芯片面积" 卻是 "芯片面積" 而不是 "晶片面積"
中間有經過什麼分詞之類的步驟嗎? 謝謝!
s2twp
根據設計應該分為兩步,即先執行 s2t
,再執行 t2twp
。
然而,經查看 s2twp.json
發現,現時 OpenCC 兩個步驟均是以 STPhrases
為詞典分詞。STPhrases
沒有「芯片」但有「片面」,所以「片面」被分開,使得轉換出錯。
一個快速的修復方法是將「芯片」加入 STPhrases.txt
。由於 OpenCC 採用的正向最長分詞算法,「芯片」會優先於「片面」被分開,從而解決這一問題。
根本的解決方法是將 s2twp
實現為完全與「先執行 s2t
,再執行 t2twp
」等價。這種方法的一個簡單的測試如下(採自 #476):
$ cat > t2twp.json
{
"name": "Traditional Chinese to Traditional Chinese (Taiwan standard, with phrases)",
"segmentation": {
"type": "mmseg",
"dict": {
"type": "ocd2",
"file": "TWPhrases.ocd2"
}
},
"conversion_chain": [{
"dict": {
"type": "group",
"dicts": [{
"type": "ocd2",
"file": "TWPhrases.ocd2"
}, {
"type": "ocd2",
"file": "TWVariants.ocd2"
}]
}
}]
}
$ echo 芯片面积 | opencc -c s2t | opencc -c ./t2twp.json
晶片面積
Related: #475
謝謝!這樣我瞭解了~ 不過如果從集合的角度來看 目前的做法好像有哪裡怪怪的? STPhrases 和 TWPhrasesIT 沒有交集的情況下 目前的做法完全沒問題 但是使用者端好像很難避免交集的情形出現? 比如本次的 "芯片" 和 "片面" 謝謝!