小编给大家分享一下Python中PyPinyin库的示例,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
Python中提供了汉字转拼音的库,名字叫做PyPinyin,可以用于汉字注音,排的序,检索等等场合,是基于hotto/拼音这个库开发的。
它有这么几个特性:
根据词组智能匹配最正确的拼音。
支持多音字。
简单的繁体支持,注音支持。
支持多种不同拼音/注音风格。
是不是等不及了呢?那就让我们来了解一下它的用法吧!
<强>安装强>
首先就是这个库的安装了,通过pip安装即可:
pip3 install PyPinyin
安装完成之后导入一下这个库,如果不报的错,那就说明安装成功了。
在祝辞祝辞,import PyPinyin
好,接下来我们看下它的具体功能。
基本拼音
首先我们进行一下基本的拼音转换,方法非常简单,直接调用拼音方法即可:
得到pypinyin import 拼音 打印(拼音(& # 39;中心& # 39;))
运行结果:
[[& # 39;zhōng& # 39;],, (& # 39; xīn& # 39;]]
可以看到结果会是一个二维的列的表,每个元素都另外成了一个列的表,其中包含了每个字的读音。
那么如果这个词是多音字咋办呢?比如“朝阳”,它有两个读音,我们拿来试下:
得到pypinyin import 拼音 打印(拼音(& # 39;朝阳& # 39;))
运行结果:
[[& # 39;zhāo& # 39;],,(& # 39;杨# 39;]]
好吧,它只给出来了一个读的音,但是如果我们想要另外一种读音咋办呢?
其实很简单,只需添加heteronym参数并设置为真实的就好了,我们试下:
得到pypinyin import 拼音 打印(拼音(& # 39;朝阳& # 39;,,heteronym=True))
运行结果:
[[& # 39;zhāo& # 39;,, & # 39;曹国伟# 39;],,(& # 39;杨# 39;]]
好了,这下子就显示出来了两个读音了,而且我们也明白了结果为什么是一个二维列表,因为里面的一维的结果可能是多个,比如多音字的情况就是这样。
但这个多少解析起来有点麻烦,很多情况下我们是不需要管多音字的,我们只是用它来转换一下名字而已,而处理上面的二维数组又比较麻烦。
所以有没有一个方法直接给我们一个一维列表呢?有!
我们可以使用lazy_pinyin这个方法来生成,尝试一下:
得到pypinyin import lazy_pinyin print (lazy_pinyin(& # 39;聪明的小兔子& # 39;))
运行结果:
[& # 39;从# 39;,,& # 39;明# 39;,,& # 39;德# 39;,,& # 39;小# 39;,,& # 39;你# 39;,,& # 39;子# 39;]
这时候观察到得到的是一个列的表,并且不再包含音调了。
这里我们就有一个疑问了,为啥拼音方法返回的结果默认是带音调的,而lazy_pinyin是不带的,这里面就涉及到一个风格转换的问题了。
<强>风格转换强>
我们可以对结果进行一些风格转换,比如不带声调风格,标准声调风格,声调在拼音之后,声调在韵母之后,注音风格等等,比如我们想要声调放在拼音后面,可以这么来实现:
得到pypinyin import lazy_pinyin,风格 , style =Style.TONE3 打印(lazy_pinyin(& # 39;聪明的小兔子& # 39;,,风格=风格))
运行结果:
[& # 39;cong1& # 39;,, & # 39; ming2& # 39;,, & # 39;德# 39;,,& # 39;小# 39;,,& # 39;tu4& # 39;,, & # 39;子# 39;]
可以看到运行结果每个拼音后面就多了一个声调,这就是其中的一个风格,叫做TONE3,其实还有很多风格,下面是我从源码里面找出来的定义:
#:,普通风格,不带声调。如:,中国,郭→,‘zhong “ NORMAL =0 #:标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如:,中国,郭→,‘zhōng “ 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 uo ' ' 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 =,Python中PyPinyin库的示例