教你使用Python pypinyin庫(kù)實(shí)現(xiàn)漢字轉(zhuǎn)拼音
一、前言
這里我先為大家提供一個(gè)中文網(wǎng)站,大家可以下去更深入的學(xué)習(xí)。
https://pypi.org/project/pypinyin/
pypinyin庫(kù),主要有幾下幾個(gè)特性:
- 智能匹配最正確的拼音;
- 支持多音字、繁體字;
- 支持多種不同拼音、注音風(fēng)格;
該庫(kù)屬于第三方Python庫(kù),因此在使用之前,需要提前安裝。
pip install pypinyin
然后,導(dǎo)入該庫(kù)即可。
import pypinyin from pypinyin import pinyin
二、pypinyin庫(kù)的使用
先來(lái)看一個(gè)最基本的例子。
from pypinyin import pinyin
pinyin("吃飯")
結(jié)果如下:

有些字,可能是多音字,再看下面這個(gè)例子。
from pypinyin import pinyin
pinyin('馮',heteronym=True)
pinyin('朝',heteronym=True)
pinyin('同',heteronym=True)
結(jié)果如下:

仔細(xì)觀察上述打印結(jié)果,生成的都是二維列表嵌套,這樣解析起來(lái),真費(fèi)勁!
能不能生成一維列表呢?
from pypinyin import lazy_pinyin
lazy_pinyin("數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)之美")
結(jié)果如下:

問(wèn)題又來(lái)了!
這里雖然是一維列表,但是沒(méi)有聲調(diào)了,這不尷尬了嗎?
這里面就涉及到一個(gè)風(fēng)格轉(zhuǎn)換的問(wèn)題了。
from pypinyin import lazy_pinyin,Style
lazy_pinyin("數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)之美",style=Style.TONE)
結(jié)果如下:

原來(lái)這里有一個(gè)Style類(lèi),供我們選擇風(fēng)格,常用的風(fēng)格有下面這14種。
#: 普通風(fēng)格,不帶聲調(diào)。如: 中國(guó) -> ``zhong guo`` NORMAL = 0 #: 標(biāo)準(zhǔn)聲調(diào)風(fēng)格,拼音聲調(diào)在韻母第一個(gè)字母上(默認(rèn)風(fēng)格)。如: 中國(guó) -> ``zhōng guó`` TONE = 1 #: 聲調(diào)風(fēng)格2,即拼音聲調(diào)在各個(gè)韻母之后,用數(shù)字 [1-4] 進(jìn)行表示。如: 中國(guó) -> ``zho1ng guo2`` TONE2 = 2 #: 聲調(diào)風(fēng)格3,即拼音聲調(diào)在各個(gè)拼音之后,用數(shù)字 [1-4] 進(jìn)行表示。如: 中國(guó) -> ``zhong1 guo2`` TONE3 = 8 #: 聲母風(fēng)格,只返回各個(gè)拼音的聲母部分(注:有的拼音沒(méi)有聲母,詳見(jiàn) `#27`_)。如: 中國(guó) -> ``zh g`` INITIALS = 3 #: 首字母風(fēng)格,只返回拼音的首字母部分。如: 中國(guó) -> ``z g`` FIRST_LETTER = 4 #: 韻母風(fēng)格,只返回各個(gè)拼音的韻母部分,不帶聲調(diào)。如: 中國(guó) -> ``ong uo`` FINALS = 5 #: 標(biāo)準(zhǔn)韻母風(fēng)格,帶聲調(diào),聲調(diào)在韻母第一個(gè)字母上。如:中國(guó) -> ``ōng uó`` FINALS_TONE = 6 #: 韻母風(fēng)格2,帶聲調(diào),聲調(diào)在各個(gè)韻母之后,用數(shù)字 [1-4] 進(jìn)行表示。如: 中國(guó) -> ``o1ng uo2`` FINALS_TONE2 = 7 #: 韻母風(fēng)格3,帶聲調(diào),聲調(diào)在各個(gè)拼音之后,用數(shù)字 [1-4] 進(jìn)行表示。如: 中國(guó) -> ``ong1 uo2`` FINALS_TONE3 = 9 #: 注音風(fēng)格,帶聲調(diào),陰平(第一聲)不標(biāo)。如: 中國(guó) -> ``ㄓㄨㄥ ㄍㄨㄛˊ`` BOPOMOFO = 10 #: 注音風(fēng)格,僅首字母。如: 中國(guó) -> ``ㄓ ㄍ`` BOPOMOFO_FIRST = 11 #: 漢語(yǔ)拼音與俄語(yǔ)字母對(duì)照風(fēng)格,聲調(diào)在各個(gè)拼音之后,用數(shù)字 [1-4] 進(jìn)行表示。如: 中國(guó) -> ``чжун1 го2`` CYRILLIC = 12 #: 漢語(yǔ)拼音與俄語(yǔ)字母對(duì)照風(fēng)格,僅首字母。如: 中國(guó) -> ``ч г`` CYRILLIC_FIRST = 13
如果你的文字中,除了漢字,還有其它符號(hào)以及英文,會(huì)打印出怎么樣的效果呢?
from pypinyin import lazy_pinyin
lazy_pinyin('Hello,我是😀',style=Style.TONE)
結(jié)果如下:

漢字打印出來(lái)就行,英文、表情符號(hào)不用打印出來(lái)最好,應(yīng)該怎么辦呢?
這里有一個(gè)errors參數(shù)呢,來(lái)看看例子。
from pypinyin import lazy_pinyin
lazy_pinyin('Hello,我是😀',style=Style.TONE,errors='ignore')
結(jié)果如下:

如果你對(duì)pypinyin庫(kù)的返回結(jié)果不滿(mǎn)意,可以自定義一個(gè)庫(kù)呀!這里可以使用load_phrases_dict 方法。
我們先來(lái)看一個(gè)例子:
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é)果如下:

到此這篇關(guān)于教你使用Python pypinyin庫(kù)實(shí)現(xiàn)漢字轉(zhuǎn)拼音的文章就介紹到這了,更多相關(guān)Python pypinyin庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python pypinyin庫(kù)實(shí)現(xiàn)漢字轉(zhuǎn)拼音的全面使用指南
- Python漢字轉(zhuǎn)拼音pypinyin庫(kù)、輸出excel的xlwt庫(kù)
- Python中pinyin庫(kù)實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音
- Python pypinyin注音庫(kù)輕松絲滑實(shí)現(xiàn)漢字轉(zhuǎn)換成拼音
- 基于Python實(shí)現(xiàn)簡(jiǎn)單的漢字拼音轉(zhuǎn)換工具
- 利用python實(shí)現(xiàn)漢字轉(zhuǎn)拼音的2種方法
- 基于Python+PyQt5實(shí)現(xiàn)漢字轉(zhuǎn)拼音的智能轉(zhuǎn)換工具
相關(guān)文章
selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法
這篇文章主要介紹了selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
python代碼中的縮進(jìn)規(guī)則詳細(xì)解釋(史上最全)
這篇文章主要介紹了代碼縮進(jìn)的重要性以及在Python語(yǔ)言中的具體規(guī)則,代碼縮進(jìn)有助于提高代碼的可讀性和整潔性,并且是Python語(yǔ)言中一個(gè)強(qiáng)制性的語(yǔ)法要求,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
Python實(shí)現(xiàn)蒙特卡洛模擬的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)蒙特卡洛模擬,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下2023-03-03
人臉檢測(cè)實(shí)戰(zhàn)終極之OpenCV+Python實(shí)現(xiàn)人臉對(duì)齊
這篇文章主要是為了演示如何使用 OpenCV、Python 和面部標(biāo)志從而實(shí)現(xiàn)對(duì)齊人臉。文中示例代碼對(duì)我們的工作或?qū)W習(xí)有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下2021-12-12
Python通過(guò)for循環(huán)理解迭代器和生成器實(shí)例詳解
這篇文章主要介紹了Python通過(guò)for循環(huán)理解迭代器和生成器,結(jié)合實(shí)例形式詳細(xì)分析了迭代器和生成器的概念、原理、使用方法及相關(guān)操作技巧,需要的朋友可以參考下2019-02-02
Python實(shí)現(xiàn)創(chuàng)建模塊的方法詳解
導(dǎo)入一個(gè)模塊,我們一般都會(huì)使用?import?關(guān)鍵字,但有些場(chǎng)景下?import?難以滿(mǎn)足我們的需要。所以除了?import?之外還有很多其它導(dǎo)入模塊的方式,下面就來(lái)介紹一下2022-07-07

