我们可以利用python的PyPinyin库来获取汉字的拼音,我们先来写一个简单的案例
import pypinyin
print(pypinyin.pinyin( "小宁博客"))
# [['xiǎo'], ['níng'], ['bó'], ['kè']]
是不是很简单呢,我们只用了两行代码就实现了最基础的汉字转拼音。要是多音字怎么办呢?
这里PyPinyin也给我们做了处理了
from pypinyin import pinyin, lazy_pinyin, Style
x = "我画了一个长方形"
# 按照意思自动标识声调
print(pinyin(x)) # [['wǒ'], ['huà'], ['le'], ['yí'], ['gè'], ['cháng'], ['fāng'], ['xíng']]
# 列举出所有的声调
print(pinyin(x, heteronym=True)) # [['wǒ'], ['huà'], ['le', 'liǎo', 'liào'], ['yí'], ['gè'], ['cháng'], ['fāng'], ['xíng']]
# 忽略声调
print(lazy_pinyin(x)) #['wo', 'hua', 'le', 'yi', 'ge', 'chang', 'fang', 'xing']
我们来详细分析下这个函数pypinyin.pinyin(hans, style=<Style.TONE: 1>, heteronym=False, errors='default', strict=True)
参数
hans
汉字字符串。style
指定拼音风格,默认是 TONE风格。errors
指定如何处理没有拼音的字符。heteronym
指定是否启用多音字。strict
指定是否严格遵照《汉语拼音方案》来处理声母和韵母。
我们再来看下pypinyin.lazy_pinyin(hans, style=<Style.NORMAL: 0>, errors='default', strict=True)
参数
hans
汉字字符串。style
指定拼音风格,默认是 TONE风格。errors
指定如何处理没有拼音的字符。strict
指定是否严格遵照《汉语拼音方案》来处理声母和韵母。
自定义拼音库
自定义拼音库--载入用户自定义的单字拼音库`pypinyin.load_single_dict(pinyin_dict, style='default')
参数
pinyin_dict (dict)
单字拼音库。比如: {0x963F: u"ā,ē"}style
pinyin_dict 参数值的拼音库风格. 支持 ‘default’, ‘tone2’
自定义拼音库--载入用户自定义的词语拼音库pypinyin.load_phrases_dict(phrases_dict, style='default')
参数
phrases_dict (dict)
词语拼音库。比如: {u"阿爸": [[u"ā"], [u"bà"]]}style phrases_dict
参数值的拼音库风格. 支持 ‘default’, ‘tone2’
附:风格列表
NORMAL = 0
普通风格,不带声调。如: 中国 -> zhong guo。TONE = 1
标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如: 中国 -> zhōng guó。TONE2 = 2
声调风格2,即拼音声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> zho1ng guo2。TONE3 = 8
声调风格3,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> zhong1 guo2。INITIALS = 3
声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见 #27_)。如: 中国 -> zh g。FIRST_LETTER = 4
首字母风格,只返回拼音的首字母部分。如: 中国 -> z g。FINALS = 5
韵母风格,只返回各个拼音的韵母部分,不带声调。如: 中国 -> ong uo。FINALS_TONE = 6
标准韵母风格,带声调,声调在韵母第一个字母上。如:中国 -> ōng uó。FINALS_TONE2 = 7
韵母风格2,带声调,声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> o1ng uo2。FINALS_TONE3 = 9
韵母风格3,带声调,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ong1 uo2。BOPOMOFO = 10
注音风格,带声调,阴平(第一声)不标。如: 中国 -> ㄓㄨㄥ ㄍㄨㄛˊ。BOPOMOFO_FIRST = 11
注音风格,仅首字母。如: 中国 -> ㄓ ㄍ。CYRILLIC = 12
汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> чжун1 го2。CYRILLIC_FIRST = 13
汉语拼音与俄语字母对照风格,仅首字母。如: 中国 -> ч г。