一、pypinyin
概述
Python 中提供了漢字轉拼音的庫,名字叫做 PyPinyin,可以用於漢字注音、排序、檢索等等場合,是基於 hotto/pinyin 這個庫開發的,一些站點鏈接如下:
- GitHub: https://github.com/mozillazg/python-pinyin
- 文檔:https://pypinyin.readthedocs.io/zh_CN/master/
- PyPi:https://pypi.org/project/pypinyin/
它有這么幾個特性:
- 根據詞組智能匹配最正確的拼音。
- 支持多音字。
- 簡單的繁體支持, 注音支持。
- 支持多種不同拼音/注音風格。
安裝
通過 pip 安裝即可:
pip install pypinyin
安裝完成之后導入一下這個庫
import pypinyin
用法
from pypinyin import pinyin
print(pinyin('中國'))
運行結果:
[['zhōng'], ['guó']]
可以看到結果會是一個二維的列表,每個元素都另外成了一個列表,其中包含了每個字的讀音。如果想要不帶聲調的只需要將style參數設置為 style=pypinyin.NORMAL 即可。
怎么更美觀的輸出拼音呢?以下代碼僅供參考。
import pypinyin
# 不帶聲調的(style=pypinyin.NORMAL)
def py1(word):
s = ''
for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
s = s + ''.join(i) + " "
return s
# 帶聲調的(默認)
def py2(word):
s = ''
for i in pypinyin.pinyin(word):
s = s + ''.join(i) + " "
return s
if __name__ == "__main__":
print(py1("中華人民共和國"))
print(py2("中華人民共和國"))
輸出結果:
zhong hua ren min gong he guo zhōng huá rén mín gòng hé guó
更多詳細的用法,請查閱官方文檔:https://pypinyin.readthedocs.io/zh_CN/master/
另外
網上還有另一種方法,可以參考以下代碼:
二、xpinyin
>>> from xpinyin import Pinyin >>> p = Pinyin() >>> # default splitter is `-` >>> p.get_pinyin(u"上海") 'shang-hai' >>> # show tone marks >>> p.get_pinyin(u"上海", show_tone_marks=True) 'shàng-hǎi' >>> # remove splitter >>> p.get_pinyin(u"上海", '') 'shanghai' >>> # set splitter as whitespace >>> p.get_pinyin(u"上海", ' ') 'shang hai' >>> p.get_initial(u"上") 'S' >>> p.get_initials(u"上海") 'S-H' >>> p.get_initials(u"上海", u'') 'SH' >>> p.get_initials(u"上海", u' ') 'S H'
!該部分內容為之前從網絡博客上收藏的,現找不到源地址。!
