使用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 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
Python实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
Python实现选择排序
Jun 04 Python
python实现生命游戏的示例代码(Game of Life)
Jan 24 Python
python的pip安装以及使用教程
Sep 18 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
python模块常用用法实例详解
Oct 17 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
python已协程方式处理任务实现过程
Dec 27 Python
python实现126邮箱发送邮件
May 20 Python
PyCharm中关于安装第三方包的三个建议
Sep 17 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 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设计模式 Visitor 访问者模式
2011/06/28 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
javascript学习之json入门
2016/12/22 Javascript
angular+webpack2实战例子
2017/05/23 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
JS实现网页烟花动画效果
2020/03/10 Javascript
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
家长会主持词开场白
2014/03/18 职场文书
企业法人授权委托书
2014/09/25 职场文书
实习证明格式范文
2014/10/14 职场文书
荆州古城导游词
2015/02/06 职场文书
投诉信格式范文
2015/07/02 职场文书
培训计划通知
2015/07/15 职场文书
外出培训学习心得体会
2016/01/18 职场文书
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python