1. 程式人生 > >[python] pinyin 模組 -- 將漢字文字轉化為拼音

[python] pinyin 模組 -- 將漢字文字轉化為拼音

許多情況下,我們需要將一段漢字轉換為拼音。比如我們可以用拼音來進行排版,或者是將拼音輸出到其他程式,生成語音。

一般將漢字轉化成拼音這樣的功能,我們需要一個字典來實現。比如 Mandarin.dat 。不過在 PyPI 中,已經有不少模組將其封裝,而這裡要介紹的就是 pinyin 模組。

1. pinyin 模組的安裝

我們可以使用 pip 或 conda 指令安裝 pinyin 模組。

$ pip install pinyin

$ conda install pinyin

2. 進行簡單的拼音轉換

在 pinyin 模組中,我們只需要一個簡單的 get()

函式,就可以返回拼音的符號

>>> import pinyin
>>> pinyin.get('你好')
'nǐhǎo'

如果使用 delimiter 引數的話,可以設定兩個拼音之間的分隔符。比如可以設定為空格:

>>> pinyin.get('你好', delimiter=" ")
'nǐ hǎo'

很多時候, ǐǎ 這樣的符號並不適合計算機來讀取。 format 引數可以設定輸出拼音的方式,比如我們設定為 strip 引數去掉註音,或者使用 numerical 將註音以數字的方式放在最後:

>>> pinyin.get('你好', format='strip', delimiter=" ")
'ni hao'
>>> pinyin.get('你好', format='numerical', delimiter=" ")
'ni3 hao3'

3. 獲得每個拼音的首字母

使用 get_initial 就可以輸出每個文字拼音的首字母。不過它會自動加空格。

>>> pinyin.get_initial('你好')
'n h'

4. 甚至還有中譯英功能

從專案 Github 的介紹來看, pinyin 這個模組甚至還有中文翻譯功能。不過作者也說這個功能是測試用的,而且也很久沒有更新的。所以只把官方的介紹放一下:

>>> import pinyin.cedict
>>> pinyin.cedict.translate_word('你')
['you (informal, as opposed to courteous 您[nin2])']
>>> pinyin.cedict.translate_word('你好')
['Hello!', 'Hi!', 'How are you?']
>>> list(pinyin.cedict.all_phrase_translations('你好'))
[['你', ['you (informal, as opposed to courteous 您[nin2])']], ['你好', ['Hello!', 'Hi!', 'How are you?']], ['好', ['to be fond of', 'to have a tendency to', 'to be prone to']]]

這個功能只是一個試驗功能,所以只是放著玩一玩的,如果大家要更精確的漢譯英,可以查詢 python 如何使用線上翻譯。

5. 結語與其他文件

pinyin 模組就這樣介紹完了。雖然比較簡單,但也十分使用。很多時候,文字轉拼音還是一件比較簡單的事,但是要將拼音轉化為文字就可以使用另外一個模組的功能: Pinyin2Hanzi - Github