使用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写的ARP攻击代码实例
Jun 04 Python
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
Feb 13 Python
python Flask实现restful api service
Dec 04 Python
python实现数据库跨服务器迁移
Apr 12 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
Django model序列化为json的方法示例
Oct 16 Python
padas 生成excel 增加sheet表的实例
Dec 11 Python
Python3模拟curl发送post请求操作示例
May 03 Python
3种python调用其他脚本的方法
Jan 06 Python
Python如何使用神经网络进行简单文本分类
Feb 25 Python
virtualenv隔离Python环境的问题解析
Jun 21 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日历[测试通过]
2008/03/27 PHP
php 引用(&amp;)详解
2009/11/20 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
javascript制作2048游戏
2015/03/30 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
Python模块文件结构代码详解
2018/02/03 Python
python lxml中etree的简单应用
2019/05/10 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
使用python实现学生信息管理系统
2021/02/25 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
求职自荐书范文
2013/12/04 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
十八大感想感言
2014/02/10 职场文书
租赁协议书范本
2014/04/22 职场文书
世界遗产导游词
2015/02/13 职场文书
三八妇女节慰问信
2015/02/14 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python