簡繁轉換
從 Linux Wiki
漢字簡繁轉換的意義不言而喻,本文討論在Linux中實現簡繁轉換的幾種方法之優劣。
目錄 |
OpenCC
OpenCC 是跨平台、多語言的開放中文轉換庫,除了基本的簡繁轉換功能外,用戶還可以選擇對不同用詞習慣和異體字的處理方式。
OpenCC 還提供方便的網頁轉換界面。
OpenOffice.Org的轉換功能
OpenOffice.Org提供簡繁功能,使用很方便(在工具->語言->中文簡繁轉換)。
Google翻譯功能
Google翻譯也可以做簡繁轉換,效果分析見後面。
使用cconv轉換
cconv建立在iconv之上,增加了詞語轉換能力,效果分析見後面。
Ubuntu用戶可以用命令sudo apt-get install cconv安裝。
使用cconv進行簡繁轉換的方法為:
cconv -f UTF8-CN -t UTF8-HK jian.txt -o fan.txt
使用iconv轉換
iconv是用來轉換編碼的小工具。現在的iconv在執行編碼從gb2312到big5的轉化時,實現了簡繁轉換。
使用iconv進行簡繁轉換的方法為:
iconv -f gb2312 -t big5 gb_input.txt > big5_output.txt
如果原來的文件是UTF-8編碼的,則需要使用命令:
iconv -f utf8 -t gb2312 jian.txt | iconv -f gb2312 -t big5 | iconv -f big5 -t utf8 > fan.txt
注意一定要先轉化成gb2312,再由gb2312轉成big5。
繁簡轉換則類似:
iconv -f utf8 -t big5 fan.txt | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 > jian.txt
如果有zh-autoconvert,則可以用它代替中間的iconv,如
iconv -f utf8 -t big5 fan.txt | autogb | iconv -f gbk -t utf8 > jian.txt
或
iconv -f utf8 -t gbk jian.txt | autob5 | iconv -f big5 -t utf8 > fan.txt
不同方法比較
測試樣例
為了方便比較,選取下面一段話做測試:
中华人民共和国是工人阶级领导的、以工农联盟为基础的人民民主专政的社会主义国家。 干活 干杯 西太后 后天
正確的轉換結果是:
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。 幹活 乾杯 西太后 後天
測試樣例中第一句話很普通,用來檢測能否完成轉換的基本功能;第二行「幹活」與「乾杯」兩個詞的「干」對應的繁體字不一樣,這可以檢測程序是否進行了語義分析;「西太后」的「後」簡繁相同,同樣用於檢測簡繁轉換的準確性。
另外,第二句話中有空格若干,用來判斷轉換程序是否能保留原格式。
測試結果
OpenCC
中華人民共和國是工人階級領導的、以工農聯盟爲基礎的人民民主專政的社會主義國家。 幹活 乾杯 西太后 後天
OpenOffice.Org
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。 干活 干杯 西太后 后天
Google翻譯
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。 幹活乾杯西太后後天
iconv
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。 幹活 幹杯 西太後 後天
cconv
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。 幹活 乾杯 西太后 後天
不難發現,對於多解的字,OpenOffice.Org未轉換,iconv按單一規則轉換,而cconv、OpenCC和Google翻譯則能正確轉換。
但是Google翻譯未能保持原格式,而OpenOffice.Org、iconv和cconv則很好地保留了原格式。
另外,iconv不能處理混合編碼的文件。
使用cconv轉換20M含部分亂碼的文本文件耗時僅數秒,且效果非常理想,不會像iconv一樣遇到「ә」等非常規字符或亂碼字符時報錯停止轉換。(推薦使用)