一、前言
這里我先為大家提供一個中文網(wǎng)站,大家可以下去更深入的學習。
https://pypi.org/project/pypinyin/
pypinyin庫,主要有幾下幾個特性:
- 智能匹配最正確的拼音;
- 支持多音字、繁體字;
- 支持多種不同拼音、注音風格;
該庫屬于第三方Python庫,因此在使用之前,需要提前安裝。
然后,導入該庫即可。
import pypinyin
from pypinyin import pinyin
二、pypinyin庫的使用
先來看一個最基本的例子。
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)計學之美")
結(jié)果如下:
問題又來了!
這里雖然是一維列表,但是沒有聲調(diào)了,這不尷尬了嗎?
這里面就涉及到一個風格轉(zhuǎn)換的問題了。
from pypinyin import lazy_pinyin,Style
lazy_pinyin("數(shù)據(jù)分析與統(tǒng)計學之美",style=Style.TONE)
結(jié)果如下:
原來這里有一個Style類,供我們選擇風格,常用的風格有下面這14種。
#: 普通風格,不帶聲調(diào)。如: 中國 -> ``zhong guo``
NORMAL = 0
#: 標準聲調(diào)風格,拼音聲調(diào)在韻母第一個字母上(默認風格)。如: 中國 -> ``zhōng guó``
TONE = 1
#: 聲調(diào)風格2,即拼音聲調(diào)在各個韻母之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``zho1ng guo2``
TONE2 = 2
#: 聲調(diào)風格3,即拼音聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``zhong1 guo2``
TONE3 = 8
#: 聲母風格,只返回各個拼音的聲母部分(注:有的拼音沒有聲母,詳見 `#27`_)。如: 中國 -> ``zh g``
INITIALS = 3
#: 首字母風格,只返回拼音的首字母部分。如: 中國 -> ``z g``
FIRST_LETTER = 4
#: 韻母風格,只返回各個拼音的韻母部分,不帶聲調(diào)。如: 中國 -> ``ong uo``
FINALS = 5
#: 標準韻母風格,帶聲調(diào),聲調(diào)在韻母第一個字母上。如:中國 -> ``ōng uó``
FINALS_TONE = 6
#: 韻母風格2,帶聲調(diào),聲調(diào)在各個韻母之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``o1ng uo2``
FINALS_TONE2 = 7
#: 韻母風格3,帶聲調(diào),聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``ong1 uo2``
FINALS_TONE3 = 9
#: 注音風格,帶聲調(diào),陰平(第一聲)不標。如: 中國 -> ``ㄓㄨㄥ ㄍㄨㄛˊ``
BOPOMOFO = 10
#: 注音風格,僅首字母。如: 中國 -> ``ㄓ ㄍ``
BOPOMOFO_FIRST = 11
#: 漢語拼音與俄語字母對照風格,聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如: 中國 -> ``чжун1 го2``
CYRILLIC = 12
#: 漢語拼音與俄語字母對照風格,僅首字母。如: 中國 -> ``ч г``
CYRILLIC_FIRST = 13
如果你的文字中,除了漢字,還有其它符號以及英文,會打印出怎么樣的效果呢?
from pypinyin import lazy_pinyin
lazy_pinyin('Hello,我是😀',style=Style.TONE)
結(jié)果如下:
漢字打印出來就行,英文、表情符號不用打印出來最好,應該怎么辦呢?
這里有一個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("黃同學",style=Style.TONE)
結(jié)果如下:
“黃同學” 的同,明明是二聲,這里成了四聲。
from pypinyin import lazy_pinyin, load_phrases_dict
personalized_dict = {'黃同學': [['huáng'], ['tòng'], ['xué']]}
load_phrases_dict(personalized_dict)
lazy_pinyin("黃同學",style=Style.TONE)
結(jié)果如下:
到此這篇關(guān)于教你使用Python pypinyin庫實現(xiàn)漢字轉(zhuǎn)拼音的文章就介紹到這了,更多相關(guān)Python pypinyin庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python 實用工具狀態(tài)機transitions
- 簡單理解Python中基于生成器的狀態(tài)機
- 狀態(tài)機的概念和在Python下使用狀態(tài)機的教程
- 淺談python中常用的excel模塊庫
- Python 中拼音庫 PyPinyin 用法詳解
- python munch庫的使用解析
- Python爬蟲基礎(chǔ)之selenium庫的用法總結(jié)
- python爬蟲之selenium庫的安裝及使用教程
- python狀態(tài)機transitions庫詳解