您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么使用Python pypinyin庫實現(xiàn)漢字轉(zhuǎn)拼音,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
pypinyin庫,主要有幾下幾個特性:
智能匹配最正確的拼音;
支持多音字、繁體字;
支持多種不同拼音、注音風(fēng)格;
該庫屬于第三方Python庫,因此在使用之前,需要提前安裝。
pip install pypinyin
然后,導(dǎo)入該庫即可。
import pypinyin from pypinyin import pinyin
先來看一個最基本的例子。
from pypinyin import pinyin pinyin("吃飯")
結(jié)果如下:
有些字,可能是多音字,再看下面這個例子。
from pypinyin import pinyin pinyin('馮',heteronym=True) pinyin('朝',heteronym=True) pinyin('同',heteronym=True)
結(jié)果如下:
仔細觀察上述打印結(jié)果,生成的都是二維列表嵌套,這樣解析起來,真費勁!
能不能生成一維列表呢?
from pypinyin import lazy_pinyin lazy_pinyin("數(shù)據(jù)分析與統(tǒng)計學(xué)之美")
結(jié)果如下:
問題又來了!
這里雖然是一維列表,但是沒有聲調(diào)了,這不尷尬了嗎?
這里面就涉及到一個風(fēng)格轉(zhuǎn)換的問題了。
from pypinyin import lazy_pinyin,Style lazy_pinyin("數(shù)據(jù)分析與統(tǒng)計學(xué)之美",style=Style.TONE)
結(jié)果如下:
原來這里有一個Style類,供我們選擇風(fēng)格,常用的風(fēng)格有下面這14種。
#: 普通風(fēng)格,不帶聲調(diào)。如: 中國 -> ``zhong guo`` NORMAL = 0 #: 標準聲調(diào)風(fēng)格,拼音聲調(diào)在韻母第一個字母上(默認風(fēng)格)。如: 中國 -> ``zhōng guó`` TONE = 1 #: 聲調(diào)風(fēng)格2,即拼音聲調(diào)在各個韻母之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``zho1ng guo2`` TONE2 = 2 #: 聲調(diào)風(fēng)格3,即拼音聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``zhong1 guo2`` TONE3 = 8 #: 聲母風(fēng)格,只返回各個拼音的聲母部分(注:有的拼音沒有聲母,詳見 `#27`_)。如: 中國 -> ``zh g`` INITIALS = 3 #: 首字母風(fēng)格,只返回拼音的首字母部分。如: 中國 -> ``z g`` FIRST_LETTER = 4 #: 韻母風(fēng)格,只返回各個拼音的韻母部分,不帶聲調(diào)。如: 中國 -> ``ong uo`` FINALS = 5 #: 標準韻母風(fēng)格,帶聲調(diào),聲調(diào)在韻母第一個字母上。如:中國 -> ``ōng uó`` FINALS_TONE = 6 #: 韻母風(fēng)格2,帶聲調(diào),聲調(diào)在各個韻母之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``o1ng uo2`` FINALS_TONE2 = 7 #: 韻母風(fēng)格3,帶聲調(diào),聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``ong1 uo2`` FINALS_TONE3 = 9 #: 注音風(fēng)格,帶聲調(diào),陰平(第一聲)不標。如: 中國 -> ``ㄓㄨㄥ ㄍㄨㄛˊ`` BOPOMOFO = 10 #: 注音風(fēng)格,僅首字母。如: 中國 -> ``ㄓ ㄍ`` BOPOMOFO_FIRST = 11 #: 漢語拼音與俄語字母對照風(fēng)格,聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``чжун1 го2`` CYRILLIC = 12 #: 漢語拼音與俄語字母對照風(fēng)格,僅首字母。如: 中國 -> ``ч г`` CYRILLIC_FIRST = 13
如果你的文字中,除了漢字,還有其它符號以及英文,會打印出怎么樣的效果呢?
from pypinyin import lazy_pinyin lazy_pinyin('Hello,我是?',style=Style.TONE)
結(jié)果如下:
漢字打印出來就行,英文、表情符號不用打印出來最好,應(yīng)該怎么辦呢?
這里有一個errors參數(shù)呢,來看看例子。
from pypinyin import lazy_pinyin lazy_pinyin('Hello,我是?',style=Style.TONE,errors='ignore')
結(jié)果如下:
如果你對pypinyin庫的返回結(jié)果不滿意,可以自定義一個庫呀!這里可以使用load_phrases_dict 方法。
我們先來看一個例子:
from pypinyin import lazy_pinyin lazy_pinyin("黃同學(xué)",style=Style.TONE)
結(jié)果如下:
“黃同學(xué)” 的同,明明是二聲,這里成了四聲。
from pypinyin import lazy_pinyin, load_phrases_dict personalized_dict = {'黃同學(xué)': [['huáng'], ['tòng'], ['xué']]} load_phrases_dict(personalized_dict) lazy_pinyin("黃同學(xué)",style=Style.TONE)
結(jié)果如下:
感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么使用Python pypinyin庫實現(xiàn)漢字轉(zhuǎn)拼音”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。