Python中文简体繁体转换

相关的库

喷火的尾巴

May 27, 2020

](/home/5119)1 赞

推荐两个开源的python库来实现简体中文和繁体中文的转换:

zhconv库:Python2和python3通用,基于MediaWiki词汇表的最大正向匹配简繁转换。
OpenCC库(全称“Open Chinese Convert”):简体中文和繁体中文转换领域精准度最高的库。

简而言之,如果求上手快,简单易用,那就选择zhconv库;
如果对精准度、覆盖度具有高度追求,那就选择OpenCC库。(OpenCC上手也比较快,正式项目中推荐使用OpenCC库)

zhconv库的GitHub地址:链接
zhconv库的Tutorial教程:链接

OpenCC库的GitHub地址:链接
OpenCC库的Demo地址:链接


再详细介绍zhconv和OpenCC前,需要知道的是繁体中文不只一种,香港的繁体中文,和台湾地区是不太一样的,另外新加坡地区也用简体中文,但马来西亚、新加坡的简体中文与中国的简体中文也有一点出入,一般新加坡的简体中文被称为“马新简体”。比如zhconv库中就做了如下分类:

  • zh-cn 大陆简体
  • zh-tw 台湾正体
  • zh-hk 香港繁体
  • zh-sg 马新简体
  • zh-hans 简体
  • zh-hant 繁体

以zhconv进行简体和繁体中文转换为例,首先使用pip安装zhconv模块:

  1. $ sudo pip install zhconv

插入zhconv模块后,如下进行简体与繁体的转换:

  1. >>> import zhconv
  2. >>> print( zhconv.convert(u'我干什么不干你事。', 'zh-cn') ) # 转换成大陆简体
  3. 我干什么不干你事。
  4. >>> print( zhconv.convert( u'反清复明', 'zh-hk' ) ) # 转换成香港繁体
  5. 反清复明

zhconv兼容python2和python3,此外zhconv还支持MediaWiki语法:

  1. >>> print(convert_for_mw(u'在现代,机械计算-{}-机的应用已经完全被电子计算-{}-机所取代', 'zh-hk'))
  2. 在现代,机械计算机的应用已经完全被电子计算机所取代
  3. >>> print(convert_for_mw(u'-{zh-hant:资讯工程;zh-hans:计算机工程学;}-是电子工程的一个分支,主要研究计算机软硬件和二者间的彼此联系。', 'zh-tw'))
  4. 资讯工程是电子工程的一个分支,主要研究计算机软硬体和二者间的彼此联系。
  5. >>> print(convert_for_mw(u'张国荣曾在英国-{zh:利兹;zh-hans:利兹;zh-hk:列斯;zh-tw:里兹}-大学学习。', 'zh-sg'))
  6. 张国荣曾在英国利兹大学学习。
  7. >>> print(convert_for_mw('毫米(毫公分),符号mm,是长度单位和降雨量单位,-{zh-hans:台湾作-{公厘}-或-{公厘}-;zh-hant:港澳和大陆称为-{毫米}-(台湾亦有使用,但较常使用名称为毫公分);zh-mo:台湾作-{公厘}-或-{公厘}-;zh-hk:台湾作-{公厘}-或-{公厘}-;}-。', 'zh-cn'))
  8. 毫米(毫公分),符号mm,是长度单位和降雨量单位,台湾作公厘或公厘。

zhconv还提供繁体中文与简体中文转换的命令行工具:

  1. python -mzhconv [-w] {zh-cn|zh-tw|zh-hk|zh-sg|zh-hans|zh-hant|zh} < input > output

而OpenCC库应该算中文繁体和简体转换领域精准度最高、覆盖率最高、速度最快的python库了;而且官方OpenCC还有C++版本、JavaScript版本,此外第三方还提供了OpenCC的Java版本Android版本Swift版本PHP版本;这里只介绍OpenCC的python版本;首先用pip安装OpenCC库:

  1. $ sudo pip install opencc

Python中使用OpenCC库:

  1. import opencc
  2. converter = opencc.OpenCC('s2t.json')
  3. converter.convert('汉字') # 汉字

上面的“s2t.json”是该库内置的预设文件,指简体转繁体。

OpenCC所有的内置预设文件如下所示,需要怎么转换,就用哪个转换文件即可:

  • s2t.json 简体到繁体
  • t2s.json 繁体到简体
  • s2tw.json 简体到台湾正体
  • tw2s.json 台湾正体到简体
  • s2hk.json 简体到香港繁体(香港小学学习字词表标准)
  • hk2s.json 香港繁体(香港小学学习字词表标准)到简体
  • s2twp.json 简体到繁体(台湾正体标准)并转换为台湾常用词汇
  • tw2sp.json 繁体(台湾正体标准)到简体并转换为中国大陆常用词汇
  • t2tw.json 繁体(OpenCC 标准)到台湾正体
  • t2hk.json 繁体(OpenCC 标准)到香港繁体(香港小学学习字词表标准)
  • t2jp.json 繁体(OpenCC 标准,旧字体)到日文新字体
  • jp2t.json 日文新字体到繁体(OpenCC 标准,旧字体)
  • hk2t.json 香港繁体(香港小学学习字词表标准)到繁体(OpenCC 标准)
  • tw2t.json 台湾正体到繁体(OpenCC 标准)

其实OpenCC的上手也很快的,正式项目中推荐使用OpenCC来实现中文繁体与简体转换。

1 赞 0 条评论 分享