【學習】python 漢語轉拼音


一、pypinyin

 概述

Python 中提供了漢字轉拼音的庫,名字叫做 PyPinyin,可以用於漢字注音、排序、檢索等等場合,是基於 hotto/pinyin 這個庫開發的,一些站點鏈接如下:

它有這么幾個特性:

  • 根據詞組智能匹配最正確的拼音。
  • 支持多音字。
  • 簡單的繁體支持, 注音支持。
  • 支持多種不同拼音/注音風格。

 安裝

   通過 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'

 !該部分內容為之前從網絡博客上收藏的,現找不到源地址。!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM