OpenCC支持地區用詞轉換了

OpenCC剛剛發佈了0.3.0版本,這次發佈最大的變化是終於支持地區習慣用詞和異體字轉換了,這是之前一直被大家呼籲的功能。上個版本0.2.0發佈已經是一年前的事情了,這一年來花在OpenCC上面的時間屈指可數。其實我在半年前就發佈了一個用QT寫的OpenCC圖形界面,只是做得水平很一般,這次也修改了不少。

爲了展示地區轉換的效果,我隨便造了幾個句子: 原文:

鼠标里面的二极管坏了,导致光标分辨率降低。
我们在老挝服务器硬盘需要使用互联网算法软件解决异步的问题。
什么你在面睡
轉換到臺灣標準:
滑鼠裡面的二極體壞了,導致游標解析度降低。
我們在寮國伺服器硬碟需要使用網際網路演算法軟體解決非同步的問題。
什麼你在面睡

以上例子前兩個句子展示了地區用詞轉換,第三個句子是臺灣標準的異體字,如“為、床、裡、著”,OpenCC默認轉換的結果是“什麼你在面睡?”。

此次發佈新增了Mac版,和Windows版一樣都包含圖形界面:

至於libopencc和命令行,還是說一下怎麼使用吧,這次一下增加了10個默認配置文件,如下:

  • zhs2zhtw_p.ini
  • zhs2zhtw_v.ini
  • zhs2zhtw_vp.ini
  • zht2zhtw_p.ini
  • zht2zhtw_v.ini
  • zht2zhtw_vp.ini
  • zhtw2zhs.ini
  • zhtw2zht.ini
  • zhtw2zhcn_s.ini
  • zhtw2zhcn_t.ini

看起來貌似很嚇人,到底用哪個呢?我來分别解釋一下,首先,爲了保證轉換的準確性和異體字的統一,OpenCC引入了一種“能分則不和”的繁體作爲中間表示,任何轉換都要經過這個中間表示,而這個中間表示同時也是我所推崇的用字標準。同時區域轉換又分爲用字轉換和用詞轉換,即異體字(裡、裏)和地區習慣詞彙(服務器、伺服器)。這10個配置文件分别是不同的源頭和目標:

  • zhs2zhtw_p.ini 簡體到臺灣標準(只轉換詞彙)
  • zhs2zhtw_v.ini 簡體到臺灣標準(只轉換異體字)
  • zhs2zhtw_vp.ini 簡體到臺灣標準(轉換異體字和詞彙)
  • zht2zhtw_p.ini 繁體到臺灣標準(只轉換詞彙)
  • zht2zhtw_v.ini 繁體到臺灣標準(只轉換異體字)
  • zht2zhtw_vp.ini 繁體到臺灣標準(轉換異體字和詞彙)
  • zhtw2zhs.ini 臺灣標準到簡體(不轉換詞彙)
  • zhtw2zht.ini 臺灣標準到繁體(不轉換詞彙)
  • zhtw2zhcn_s.ini 臺灣標準到中國大陸標準(轉換詞彙,並轉換爲簡體)
  • zhtw2zhcn_t.ini 臺灣標準到中國大陸標準(轉換詞彙,保持繁體)

其中後綴p表示phrases,v表示variants,s表示simplified,t表示traditional。我們到底應該用哪個呢?多數情况下簡繁轉換只需用zhs2zht.ini即可,如果需要轉換臺灣常用詞彙,一般用zhs2zhtw_vp.ini;一般從臺灣繁體到簡體用zhtw2zhcn_s.ini,如果不需要轉換詞彙,用zht2zhs.ini。其他的配置依據需求使用,更複雜的情况,我們還可以自定義配置文件,參見說明。當然,如果你僅僅使用OpenCC的圖形版,完全沒有必要理會這些細節。

爲什麼要設計得看起來這麼複雜呢?目的是爲了適應各種不同的需求,例如很多時候轉換一片文章需要將其中的地區習慣用詞連帶轉換了,但在輸入法中就完全不能,否則就會干擾使用者的原意。更複雜的情形還有異體字的選擇等等。OpenCC創立之初的宗旨就是建造一個最好的簡繁轉換工具,而不是僅僅能用而已。

相關日誌