使用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 08 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
Python3字符串encode与decode的讲解
Apr 02 Python
Django 开发环境配置过程详解
Jul 18 Python
浅谈Python访问MySQL的正确姿势
Jan 07 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
python exit出错原因整理
Aug 31 Python
python读取pdf格式文档的实现代码
Apr 01 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 中的4种标记风格介绍
2012/05/10 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
Python编程中的for循环语句学习教程
2015/10/14 Python
让python在hadoop上跑起来
2016/01/27 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
python创建文件备份的脚本
2018/09/11 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
Python将string转换到float的实例方法
2019/07/29 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
python tkinter实现连连看游戏
2020/11/16 Python
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
水电工岗位职责
2014/02/12 职场文书
社区娱乐活动方案
2014/08/21 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
摩登时代观后感
2015/06/03 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python
详解Python内置模块Collections
2022/03/22 Python