教你使用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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
Python实现的数据结构与算法之基本搜索详解
Apr 22 Python
批处理与python代码混合编程的方法
May 19 Python
Python复数属性和方法运算操作示例
Jul 21 Python
答题辅助python代码实现
Jan 16 Python
python实现装饰器、描述符
Feb 28 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
python tkinter组件使用详解
Sep 16 Python
Python imageio读取视频并进行编解码详解
Dec 10 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
Django正则URL匹配实现流程解析
Nov 13 Python
Python 语言实现六大查找算法
Jun 30 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目录管理函数小结
2008/09/10 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
用Python进行基础的函数式编程的教程
2015/03/31 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
Python 寻找局部最高点的实现
2019/12/05 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
学生发电厂实习自我鉴定
2013/09/22 职场文书
法学毕业生自我鉴定
2014/01/31 职场文书
厂长岗位职责
2014/02/19 职场文书
松材线虫病防治方案
2014/06/15 职场文书
网络技术专业求职信
2014/07/13 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
体育教师个人总结
2015/02/09 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
二胎满月酒致辞
2015/07/29 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
python munch库的使用解析
2021/05/25 Python
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers