使用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 相关文章推荐
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
老生常谈python中的重载
Nov 11 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
解决Python pip 自动更新升级失败的问题
Feb 21 Python
Python任务自动化工具tox使用教程
Mar 17 Python
python模块如何查看
Jun 16 Python
详细分析Python垃圾回收机制
Jul 01 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
浅析Python中的套接字编程
Jun 22 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
PHP实现Socket服务器的代码
2008/04/03 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
js 判断 enter 事件
2009/02/12 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
Python实现配置文件备份的方法
2015/07/30 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
python实现淘宝购物系统
2019/10/25 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
工程预算与管理应届生求职信
2013/10/06 职场文书
小学开学寄语
2014/01/19 职场文书
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
2014年督导工作总结
2014/11/19 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
德生BCL3000抢先使用感受和评价
2022/04/07 无线电