使用Python进行中文繁简转换的实现代码


Posted in Python onOctober 18, 2019

中文繁体、简体的差异,在NPL中类似英文中的大小写,但又比大小写更为复杂,比如同样为繁体字,大陆、香港和台湾又不一样。先前写过一篇中文繁简转换的文章,感觉写的不太详细,今天就针对Python下如何使用做进一步的记录。

OpenCC(Open Chinese Convert)

OpenCC是一个开源的中文繁简转化项目,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港)。主要特点为:

  • 严格区分「一简对多繁」和「一简对多异」。
  • 完全兼容异体字,可以实现动态替换。
  • 严格审校一简对多繁词条,原则为「能分则不合」。
  • 支持中国大陆、台湾、香港异体字和地区习惯用词转换,如「?」「?」、「鼠?恕埂富?蟆埂?/li>
  • 词库和函数库完全分离,可以自由修改、导入、扩展。
  • 支持C、C++、Python、PHP、Java、Ruby、js and Android。
  • 兼容Windows、Linux、Mac平台。

opencc-python是用纯Python所写的OpenCC实现。需要注意的是使用pip安装时正确的命令是pip install opencc-python-reimplemented,如果使用pip install opencc-python会出现如下错误:

Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\qw\AppData\Local\Temp\pip-install-rvsnpo_d\opencc-python\setup.py", line 1, in <module>
        from distribute_setup import use_setuptools
    ModuleNotFoundError: No module named 'distribute_setup'

opencc-pytho的使用:

from opencc import OpenCC
 
cc = OpenCC('t2s')
# hk2s: Traditional Chinese (Hong Kong standard) to Simplified Chinese
# s2hk: Simplified Chinese to Traditional Chinese (Hong Kong standard)
# s2t: Simplified Chinese to Traditional Chinese
# s2tw: Simplified Chinese to Traditional Chinese (Taiwan standard)
# s2twp: Simplified Chinese to Traditional Chinese (Taiwan standard, with phrases)
# t2hk: Traditional Chinese to Traditional Chinese (Hong Kong standard)
# t2s: Traditional Chinese to Simplified Chinese
# t2tw: Traditional Chinese to Traditional Chinese (Taiwan standard)
# tw2s: Traditional Chinese (Taiwan standard) to Simplified Chinese
# tw2sp: Traditional Chinese (Taiwan standard) to Simplified Chinese (with phrases)
 
to_convert = '?放中文??Q(Pure Python)'
converted = cc.convert(to_convert)
print(converted)

opencc-python命令行调用:

usage: python -m opencc [-h] [-i <file>] [-o <file>] [-c <conversion>]
            [--in-enc <encoding>] [--out-enc <encoding>]
 
optional arguments:
 -h, --help      show this help message and exit
 -i <file>, --input <file>
            Read original text from <file>. (default: None = STDIN)
 -o <file>, --output <file>
            Write converted text to <file>. (default: None = STDOUT)
 -c <conversion>, --config <conversion>
            Conversion (default: None)
 --in-enc <encoding>  Encoding for input (default: UTF-8)
 --out-enc <encoding> Encoding for output (default: UTF-8)
 
example with UTF-8 encoded file:
 
 python -m opencc -c s2t -i my_simplified_input_file.txt -o my_traditional_output_file.txt
 
See https://docs.python.org/3/library/codecs.html#standard-encodings for list of encodings.

总结:OpenCC精度非常的高,另外也包含了习惯用词转换,比较适合放置在网站上进行自动的语言翻译。

参考链接:

https://github.com/BYVoid/OpenCC
https://github.com/yichen0831/opencc-python

zhconv

zhconv 提供基于 MediaWiki 和 OpenCC 词汇表的最大正向匹配简繁转换,支持地区词转换:zh-cn, zh-tw, zh-hk, zh-sg, zh-hans, zh-hant。Python 2、3通用。

安装方式:pip install zhconv

使用示例:

from zhconv import convert
 
print(convert(u'我?质颤N不干你事。', 'zh-cn'))
print(convert(u'人体内存在很多微生物', 'zh-tw'))

命令行工具:

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

参考链接:

https://github.com/gumblex/zhconv

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
浅谈Python中range和xrange的区别
Dec 20 Python
使用Python实现windows下的抓包与解析
Jan 15 Python
利用python库在局域网内传输文件的方法
Jun 04 Python
python实现梯度下降算法
Mar 24 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
python3使用matplotlib绘制条形图
Mar 25 Python
python批量识别图片指定区域文字内容
Apr 30 Python
python调用webservice接口的实现
Jul 12 Python
python列表推导式入门学习解析
Dec 02 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 Python
python通过函数名调用函数的几种方法总结
Jun 07 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 #Python
python使用matplotlib绘制雷达图
Oct 18 #Python
Python 日志logging模块用法简单示例
Oct 18 #Python
python调用matplotlib模块绘制柱状图
Oct 18 #Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 #Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 #Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 #Python
You might like
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
php4与php5的区别小结(配置异同)
2011/12/20 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
JavaScript延迟加载
2021/03/09 Javascript
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
React 组件间的通信示例
2018/06/14 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
python学生管理系统学习笔记
2019/03/19 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
remote接口和home接口主要作用
2013/05/15 面试题
学生会干部自荐信
2014/02/04 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
我爱读书演讲稿
2014/05/07 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
十佳家长事迹材料
2014/08/26 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
查摆剖析材料范文
2014/09/30 职场文书
内勤岗位职责
2015/02/10 职场文书
文艺演出主持词
2015/07/01 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL