Python中PyPinyin库的示例

  介绍

小编给大家分享一下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库的示例