Skip to content

繁簡轉換引擎 ​

RustZ 有兩種繁簡轉換引擎,在「設定 → 預設的繁簡轉換」切換,命令列版用 /e:opencc 或 /e:convertz。

兩種引擎的流程

自訂詞典優先 ​

不論哪一種引擎,轉換前都先以自訂詞典比對:從左到右、最長的詞優先,比對到的詞直接輸出,其餘的文字才交給引擎。

詞庫增強引擎(OpenCC) ​

預設引擎,使用 OpenCC 1.4.2 的詞庫,轉換方式也與 OpenCC 相同:

  1. 斷詞:以詞庫做最長詞比對,把文字切成詞段(簡 → 繁用 STPhrases 的 49,269 條詞彙)。
  2. 轉換鏈:每個詞段依序通過幾組詞典;每一組先查詞彙、查不到再查單字。
方向字形標準轉換鏈
簡 → 繁OpenCC 標準詞彙+單字
簡 → 繁臺灣詞彙+單字 → 臺灣字形(裏 → 裡、着 → 著……)
簡 → 繁臺灣+慣用詞詞彙+單字 → 臺灣慣用詞與字形(软件 → 軟體)
簡 → 繁香港詞彙+單字 → 香港字形
繁 → 簡臺灣(+慣用詞)臺灣字形(與慣用詞)還原 → 詞彙+單字
繁 → 簡香港香港字形還原 → 詞彙+單字
繁 → 簡OpenCC 標準詞彙+單字

繁 → 簡時,「字形標準」指的是來源文字的寫法。

例:

原文OpenCC 標準臺灣臺灣+慣用詞
头发很长,发展很快頭髮很長,發展很快頭髮很長,發展很快頭髮很長,發展很快
里面的软件裏面的軟件裡面的軟件裡面的軟體
内存和鼠标內存和鼠標內存和鼠標記憶體和滑鼠

ConvertZ 相容引擎 ​

沿用 ConvertZ 8.02 的資料,轉換方式也與原版相同:

  1. 逐字轉換:簡 → 繁 2,293 字、繁 → 簡 2,472 字(從 ConCmd 內建的 GBK ↔ Big5 對照表整理而來)。
  2. 詞彙修正:對轉換後的文字做最長詞優先的替換。繁體修正表 7,576 條、簡體修正表 2,879 條,來自 ConvertZ 8.02 內建的 BI_TradFix.dat 與 BI_SimFix.dat。

修正表比對的是轉換後的文字,而且整篇只掃描一次、比對到就跳到該詞之後。ConCmd 說明文件中的例子:

修正表轉換前(逐字轉換後)修正後
明了,明瞭已經天明了。眾人明了他的處境。已經天明瞭。眾人明瞭他的處境。(第一個錯了)
再加 天明,天明同上已經天明了。眾人明瞭他的處境。

加一條「轉了跟沒轉一樣」的詞條,就能擋住錯誤的修正——這是原版修正表常用的技巧,RustZ 保留了這個行為。

關掉「套用 ConvertZ 詞彙修正表」就只做逐字轉換。

該用哪一種 ​

情況建議
一般的簡體 → 臺灣繁體詞庫增強,開「臺灣慣用詞」
只要字形轉換,不想改用詞詞庫增強,關「臺灣慣用詞」
香港用字詞庫增強,字形標準選「香港」
要跟 ConvertZ 轉出來的結果一模一樣ConvertZ 相容

「自動」字形的判斷 ​

字形設成「自動」時(命令列沒給 /f:),RustZ 只在需要時轉換:

  • 輸出 Big5:來源不是 Big5,而且文字裡的簡體專用字(Big5 沒有的簡化字)比繁體專用字(GB2312 沒有的繁體字)多,才做簡 → 繁。繁體的 UTF-8 檔輸出成 Big5 不會被「再轉一次」。
  • 輸出 GBK 或 HZ:來源是 Big5,或文字裡的繁體專用字比較多,才做繁 → 簡。
  • 其他編碼:不轉換字形。

指定「繁體」或「簡體」時一律轉換;唯一的例外是來源為 Big5 時不做簡 → 繁(本來就是繁體),以及輸出 Big5 時「簡體」無效。

取自 ConvertZ 的對照表僅供個人非商業使用;OpenCC 詞庫為 Apache-2.0 授權。