使用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操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
python实现模拟按键,自动翻页看u17漫画
Mar 17 Python
python获取指定时间差的时间实例详解
Apr 11 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
python3实现斐波那契数列(4种方法)
Jul 15 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
在notepad++中实现直接运行python代码
Dec 18 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
python读取pdf格式文档的实现代码
Apr 01 Python
深入浅析Django MTV模式
Sep 04 Python
python三子棋游戏
May 04 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
8个超棒的学习 jQuery 的网站 推荐收藏
2011/04/02 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
详解如何较好的使用js
2016/12/16 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
python从入门到精通(DAY 1)
2015/12/20 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
幼儿园新学期寄语
2014/01/18 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
五水共治一句话承诺
2014/05/30 职场文书
助理政工师申报材料
2014/06/03 职场文书
服务理念口号
2014/06/11 职场文书
2014年技术部工作总结
2014/12/12 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
关于五一放假的通知
2015/08/18 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis