简繁转换
出自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一樣遇到“ә”等非常規字符或亂碼字符時報錯停止轉換。(推薦使用)