Python扩展库pypinyin支持汉字到拼音的转换,并且可以和分词扩展库配合使用。
>>> from pypinyin import lazy_pinyin, pinyin
>>> lazy_pinyin('董付国') #返回拼音
['dong', 'fu', 'guo']
>>> lazy_pinyin('董付国', 1) #带声调的拼音
['dǒng', 'fù', 'guó']
>>> lazy_pinyin('董付国', 2) #另一种拼音风格
['do3ng', 'fu4', 'guo2']
>>> lazy_pinyin('董付国', 3) #只返回拼音首字母
['d', 'f', 'g']
>>> lazy_pinyin('重要', 1) #能够根据词组智能识别多音字
['zhòng', 'yào']
>>> lazy_pinyin('重阳', 1)
['chóng', 'yáng']
>>> pinyin('重阳') #返回拼音
[['chóng'], ['yáng']]
>>> pinyin('重阳节', heteronym=True) #返回多音字的所有读音
[['zhòng', 'chóng', 'tóng'], ['yáng'], ['jié', 'jiē']]
>>> import jieba #其实不需要导入jieba,这里只是说明已安装
>>> x = '中英文混合test123'
>>> lazy_pinyin(x) #自动调用已安装的jieba扩展库分词功能
['zhong', 'ying', 'wen', 'hun', 'he', 'test123']
>>> lazy_pinyin(jieba.cut(x))
['zhong', 'ying', 'wen', 'hun', 'he', 'test123']
>>> x = '山东烟台的大樱桃真好吃啊'
>>> sorted(x, key=lambda ch: lazy_pinyin(ch)) #按拼音对汉字进行排序
['啊', '吃', '大', '的', '东', '好', '山', '台', '桃', '烟', '樱', '真']