教你使用Python pypinyin库实现汉字转拼音


Posted in Python onMay 27, 2021

一、前言

这里我先为大家提供一个中文网站,大家可以下去更深入的学习。

https://pypi.org/project/pypinyin/

pypinyin库,主要有几下几个特性:

  • 智能匹配最正确的拼音;
  • 支持多音字、繁体字;
  • 支持多种不同拼音、注音风格;

该库属于第三方Python库,因此在使用之前,需要提前安装。

pip install pypinyin

然后,导入该库即可。

import pypinyin
from pypinyin import pinyin

二、pypinyin库的使用

先来看一个最基本的例子。

from pypinyin import pinyin
pinyin("吃饭")

结果如下:

教你使用Python pypinyin库实现汉字转拼音

有些字,可能是多音字,再看下面这个例子。

from pypinyin import pinyin
pinyin('冯',heteronym=True)
pinyin('朝',heteronym=True)
pinyin('同',heteronym=True)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

仔细观察上述打印结果,生成的都是二维列表嵌套,这样解析起来,真费劲!

能不能生成一维列表呢?

from pypinyin import lazy_pinyin
lazy_pinyin("数据分析与统计学之美")

结果如下:

教你使用Python pypinyin库实现汉字转拼音

问题又来了!

这里虽然是一维列表,但是没有声调了,这不尴尬了吗?

这里面就涉及到一个风格转换的问题了。

from pypinyin import lazy_pinyin,Style
lazy_pinyin("数据分析与统计学之美",style=Style.TONE)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

原来这里有一个Style类,供我们选择风格,常用的风格有下面这14种。

#: 普通风格,不带声调。如: 中国 -> ``zhong guo``
NORMAL  =  0

#: 标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如: 中国 -> ``zhōng guó``
TONE  =  1

#: 声调风格2,即拼音声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> ``zho1ng guo2``
TONE2  =  2

#: 声调风格3,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``zhong1 guo2``
TONE3  =  8

#: 声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见 `#27`_)。如: 中国 -> ``zh g``
INITIALS  =  3

#: 首字母风格,只返回拼音的首字母部分。如: 中国 -> ``z g``
FIRST_LETTER  =  4

#: 韵母风格,只返回各个拼音的韵母部分,不带声调。如: 中国 -> ``ong uo``
FINALS  =  5

#: 标准韵母风格,带声调,声调在韵母第一个字母上。如:中国 -> ``ōng uó``
FINALS_TONE  =  6

#: 韵母风格2,带声调,声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> ``o1ng uo2``
FINALS_TONE2  =  7

#: 韵母风格3,带声调,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``ong1 uo2``
FINALS_TONE3  =  9

#: 注音风格,带声调,阴平(第一声)不标。如: 中国 -> ``ㄓㄨㄥ ㄍㄨㄛ?``
BOPOMOFO  =  10

#: 注音风格,仅首字母。如: 中国 -> ``ㄓ ㄍ``
BOPOMOFO_FIRST  =  11

#: 汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``чжун1 го2``
CYRILLIC  =  12

#: 汉语拼音与俄语字母对照风格,仅首字母。如: 中国 -> ``ч г``
CYRILLIC_FIRST  =  13

如果你的文字中,除了汉字,还有其它符号以及英文,会打印出怎么样的效果呢?

from pypinyin import lazy_pinyin
lazy_pinyin('Hello,我是?',style=Style.TONE)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

汉字打印出来就行,英文、表情符号不用打印出来最好,应该怎么办呢?

这里有一个errors参数呢,来看看例子。

from pypinyin import lazy_pinyin

lazy_pinyin('Hello,我是?',style=Style.TONE,errors='ignore')

结果如下:

教你使用Python pypinyin库实现汉字转拼音

如果你对pypinyin库的返回结果不满意,可以自定义一个库呀!这里可以使用load_phrases_dict 方法。

我们先来看一个例子:

from pypinyin import lazy_pinyin

lazy_pinyin("黄同学",style=Style.TONE)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

“黄同学” 的同,明明是二声,这里成了四声。

from pypinyin import lazy_pinyin,  load_phrases_dict

personalized_dict = {'黄同学':  [['huáng'], ['tòng'], ['xué']]}

load_phrases_dict(personalized_dict)

lazy_pinyin("黄同学",style=Style.TONE)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

到此这篇关于教你使用Python pypinyin库实现汉字转拼音的文章就介绍到这了,更多相关Python pypinyin库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python处理文本文件并生成指定格式的文件
Jul 31 Python
Python实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
python在linux系统下获取系统内存使用情况的方法
May 11 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
TensorFlow实现简单卷积神经网络
May 24 Python
Linux下python制作名片示例
Jul 20 Python
Python离线安装PIL 模块的方法
Jan 08 Python
利用anaconda保证64位和32位的python共存
Mar 09 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
基于tensorflow权重文件的解读
May 26 #Python
解决Python字典查找报Keyerror的问题
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
tensorflow中的数据类型dtype用法说明
May 26 #Python
详解Python魔法方法之描述符类
May 26 #Python
使用tensorflow 实现反向传播求导
python基础学习之递归函数知识总结
You might like
PHP个人网站架设连环讲(二)
2006/10/09 PHP
也谈php网站在线人数统计
2008/04/09 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
调整PHP的性能
2013/10/30 PHP
php生成短网址示例
2014/05/05 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
php支付宝APP支付功能
2020/07/29 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
Python ldap实现登录实例代码
2016/09/30 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
Python字典对象实现原理详解
2019/07/01 Python
一行python实现树形结构的方法
2019/08/09 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
pandas中ix的使用详细讲解
2020/03/09 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
建筑设计所实习生自我鉴定
2013/09/25 职场文书
职工运动会邀请函
2014/01/19 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL