简繁转换

出自Linux Wiki

在2010年8月18日 (三) 06:28由Dukelec (讨论 | 贡献)所做的修订版本

汉字简繁转换的意义不言而喻,本文讨论在Linux中实现简繁转换的几种方法之优劣。

Hint.gif
提示:
本文所提供的方法都不完善,如果你有更好的方案,欢迎修改本文。

目录

OpenOffice.Org的转换功能

OpenOffice.Org提供简繁功能,使用很方便(在工具->语言->中文简繁转换)。

google翻译功能

http://translate.google.com/ google翻译也可以做简繁转换,效果分析见后面。


使用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

使用cconv轉換

http://code.google.com/p/cconv/

ubuntu用戶可以用命令“sudo apt-get install cconv”安裝。

cconv是建立在iconv之上,增加了詞語轉換能力,效果分析見後面。

使用cconv進行簡繁轉換的方法為:

cconv -f UTF8-CN -t UTF8-HK jian.txt -o fan.txt

不同方法比较

测试样例

为了方便比较,选取下面一段话做测试:

中华人民共和国是工人阶级领导的、以工农联盟为基础的人民民主专政的社会主义国家。
干活 干杯  西太后   后天

正确的转换结果是:

中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
幹活 乾杯  西太后   後天

测试样例中第一句话很普通,用来检测能否完成转换的基本功能;第二行“干活”与“干杯”两个词的“干”对应的繁体字不一样,这可以检测程序是否进行了语义分析;“西太后”的“后”简繁相同,同样用于检测简繁转换的准确性。

另外,第二句话中有空格若干,用来判断转换程序是否能保留原格式。

测试结果

OpenOffice.Org

中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
干活 干杯  西太后   后天

google翻译

中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
幹活乾杯西太后後天

iconv

中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
幹活 幹杯  西太後   後天

cconv

中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
幹活 乾杯  西太后   後天

不难发现,对于多解的字,OpenOffice.Org未转换,iconv按单一规则转换,而cconv與google翻译则能正确转换。

但是google翻译未能保持原格式,而OpenOffice.Org、iconv和cconv则很好地保留了原格式。

另外,iconv不能处理混合编码的文件。

使用cconv轉換20M含部分亂碼的文本文件耗時僅數秒,且效果非常理想,不會像iconv一樣遇到“ә”等非常規字符或亂碼字符時報錯停止轉換。(推薦使用)

各种转换工具的效果大致评述如下,请按照自己的需要选用。

个人工具
简体繁体转换