OpenCC icon indicating copy to clipboard operation
OpenCC copied to clipboard

在 s2twp 下,"芯片面积" 的翻譯問題

Open linzack opened this issue 3 years ago • 3 comments

想請問為何

  1. "芯片" 可以被翻譯成 "晶片"
  2. "芯片面积" 卻是 "芯片面積" 而不是 "晶片面積"

中間有經過什麼分詞之類的步驟嗎? 謝謝!

linzack avatar Dec 16 '20 11:12 linzack

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
晶片面積

sgalal avatar Dec 16 '20 12:12 sgalal

Related: #475

sgalal avatar Dec 16 '20 12:12 sgalal

謝謝!這樣我瞭解了~ 不過如果從集合的角度來看 目前的做法好像有哪裡怪怪的? STPhrases 和 TWPhrasesIT 沒有交集的情況下 目前的做法完全沒問題 但是使用者端好像很難避免交集的情形出現? 比如本次的 "芯片" 和 "片面" 謝謝!

linzack avatar Dec 16 '20 13:12 linzack