婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > Python實(shí)現(xiàn)拼音轉(zhuǎn)換

Python實(shí)現(xiàn)拼音轉(zhuǎn)換

熱門標(biāo)簽:騰訊地圖標(biāo)注沒法顯示 打電話機(jī)器人營銷 南陽打電話機(jī)器人 ai電銷機(jī)器人的優(yōu)勢 商家地圖標(biāo)注海報(bào) 地圖標(biāo)注自己和別人標(biāo)注區(qū)別 聊城語音外呼系統(tǒng) 孝感營銷電話機(jī)器人效果怎么樣 海外網(wǎng)吧地圖標(biāo)注注冊

什么是拼音轉(zhuǎn)換

在我們學(xué)習(xí)語言之前,我們一般會(huì)學(xué)習(xí)拼音來認(rèn)識(shí)漢字,并學(xué)會(huì)如何讀漢字。所以,拼音在對于我們語言的重要性不言而喻。

而拼音轉(zhuǎn)換指的是將漢字轉(zhuǎn)為拼音的過程。但是,我們中文博大精深,一般來說某個(gè)字并不僅僅只有一個(gè)讀音,比如“翟”,它作為姓氏可以讀作zhái,作為其他可讀作di。這是就需要結(jié)合上下文,或者說結(jié)合與其組合的詞匯進(jìn)行轉(zhuǎn)換拼音。不僅如此,拼音還有音調(diào),比如一二三四聲表示的意義有時(shí)候也是不一樣的。

本篇博文將介紹字符串到拼音的轉(zhuǎn)換。

拼音轉(zhuǎn)換

首先,HanLP庫提供的拼音轉(zhuǎn)換為本位于data/dictionary/pinyin/pinyin.txt文件中。每行分別由=隔開漢字與拼音。其中多音字的拼音數(shù)量多余漢字?jǐn)?shù)量。在實(shí)際的轉(zhuǎn)換過程中,默認(rèn)讀取多音字的第一個(gè)拼音,除非匹配到更長的詞語。

此外,HanLP庫還支持聲母,韻母,音調(diào),音標(biāo)以及輸入法首字母與收聲母功能。當(dāng)然,也能給前文的繁體字轉(zhuǎn)換為拼音。

下面,我們來看一段代碼示例:

if __name__ == "__main__":
    text = "重載不是重量"
    pinyin_list = HanLP.convertToPinyinList(text)
    print(pinyin_list)

運(yùn)行之后,控制臺(tái)輸出如下:


可以看到,基本上每個(gè)字的拼音都輸出了。如果程序判斷不出來多音字是哪個(gè)聲調(diào),會(huì)輸出其所有的聲調(diào)。比如這里的體輸出了3聲和1聲,重輸出了3聲與2聲。

在python中,我們通過HanLP.convertToPinyinList進(jìn)行漢字與拼音的轉(zhuǎn)換。

輸出音調(diào)

鑒于我們已經(jīng)知道了如何轉(zhuǎn)換漢字到拼音,那么我們現(xiàn)在需要實(shí)現(xiàn)的是單獨(dú)獲取每個(gè)漢字的音調(diào),不需要聲調(diào)?,F(xiàn)在該如何去實(shí)現(xiàn)呢?不妨先來看看代碼:

if __name__ == "__main__":
    Pinyin = JClass("com.hankcs.hanlp.dictionary.py.Pinyin")
    text = "重載不是體重"
    pinyin_list = HanLP.convertToPinyinList(text)
    print(pinyin_list)
    print("輸出音調(diào)")
    for pinyin in pinyin_list:
        print("%s," % pinyin.getPinyinWithToneMark(), end=" ")

如上面代碼所示,我們獲取了Java的HanLP庫中的Pinyin類,這個(gè)類可以幫我們處理很多的拼音相關(guān)的問題,比如這里的獲取音調(diào)。

運(yùn)行之后,效果如下:

需要注意的是,前面博文已經(jīng)說過了,通過python進(jìn)行HanLP庫使用時(shí),盡量調(diào)用Java類進(jìn)行處理,因?yàn)镴ava類的處理時(shí)間比python快很多。這里我們通過Pinyin類的getPinyinWithToneMark()方法獲取聲調(diào)。

輸出聲調(diào)

既然可以只輸出音調(diào),那么肯定也可以單獨(dú)輸出聲調(diào)。具體代碼如下:

if __name__ == "__main__":
    Pinyin = JClass("com.hankcs.hanlp.dictionary.py.Pinyin")
    text = "重載不是體重"
    pinyin_list = HanLP.convertToPinyinList(text)
    print(pinyin_list)
    print("輸出聲調(diào)")
    for pinyin in pinyin_list:
        print("%s," % pinyin.getTone(), end=" ")

運(yùn)行之后,效果如下:

這里我們通過Pinyin類的getTone()方法獲取聲調(diào)。

輸出聲母

同樣的,我們還可以輸出聲母。代碼如下:

if __name__ == "__main__":
    Pinyin = JClass("com.hankcs.hanlp.dictionary.py.Pinyin")
    text = "重載不是體重"
    pinyin_list = HanLP.convertToPinyinList(text)
    print(pinyin_list)
    print("\r\n輸出聲母")
    for pinyin in pinyin_list:
        print("%s," % pinyin.getShengmu(), end=" ")

運(yùn)行之后,效果如下:

這里我們用getShengmu()方法輸出聲母,方法名就是中文意思,很好理解。

輸出韻母

接著,我們再來輸出韻母。代碼如下:

if __name__ == "__main__":
    Pinyin = JClass("com.hankcs.hanlp.dictionary.py.Pinyin")
    text = "重載不是體重"
    pinyin_list = HanLP.convertToPinyinList(text)
    print(pinyin_list)
    print("\r\n輸出韻母")
    for pinyin in pinyin_list:
        print("%s," % pinyin.getYunmu(), end=" ")

運(yùn)行之后,效果如下:

這里我們用getYunmu()方法輸出韻母,方法名就是中文意思,很好理解。

處理數(shù)字拼音

除此之外,上面因?yàn)槎际菨h字,所以大家肯定都很好處理成拼音。但是現(xiàn)在很多時(shí)候,中文文本里面并不僅僅只有漢字,也有數(shù)字和英文。但是拼音是漢字獨(dú)有的,那怎么辦呢?

我們先來看看按上面直接處理帶數(shù)字與英文時(shí),效果怎么樣。代碼如下所示:

if __name__ == "__main__":
    Pinyin = JClass("com.hankcs.hanlp.dictionary.py.Pinyin")
    text = "我們到2035年就會(huì)稱為世界第一"
    pinyin_list = HanLP.convertToPinyinList(text)
    print(pinyin_list)

運(yùn)行之后,效果如下:


可以看到數(shù)字都直接替換為none5,也就是缺失的意義。拼音文件找不到與其匹配的漢語拼音。

而我們實(shí)際在處理中文文檔時(shí),都是保留數(shù)字與英文的并不直接翻譯。其實(shí)這里我們想保留其數(shù)字的話,HanLP.convertToPinyinString()方法就能實(shí)現(xiàn),我們來看看這個(gè)方法的完整定義:

convertToPinyinString(轉(zhuǎn)換為拼音的字符串文本,輸出間隔符,布爾類型)

相信看了上面方法的讀者應(yīng)該很快就知道了,第3個(gè)布爾類型就是轉(zhuǎn)換數(shù)字與保留數(shù)字的關(guān)鍵參數(shù),這里我們再來變換代碼:

if __name__ == "__main__":
    Pinyin = JClass("com.hankcs.hanlp.dictionary.py.Pinyin")
    text = "我們到2035年就會(huì)稱為世界第一"
    pinyin_list = HanLP.convertToPinyinString(text," ",False)
    print(pinyin_list)

運(yùn)行之后,我們的英文與數(shù)字就會(huì)原封不動(dòng)的保留下來。效果如下:

到此這篇關(guān)于Python實(shí)現(xiàn)拼音轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Python 拼音轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python 中拼音庫 PyPinyin 用法詳解
  • python 批量將中文名轉(zhuǎn)換為拼音
  • 基于Python第三方插件實(shí)現(xiàn)西游記章節(jié)標(biāo)注漢語拼音的方法
  • 利用python實(shí)現(xiàn)漢字轉(zhuǎn)拼音的2種方法
  • 用Python從0開始實(shí)現(xiàn)一個(gè)中文拼音輸入法的思路詳解
  • Python3實(shí)現(xiàn)漢語轉(zhuǎn)換為漢語拼音
  • python去除拼音聲調(diào)字母,替換為字母的方法
  • Python 獲取中文字拼音首個(gè)字母的方法
  • python獲取一組漢字拼音首字母的方法
  • Python 返回漢字的漢語拼音

標(biāo)簽:聊城 六盤水 撫州 楊凌 牡丹江 迪慶 揚(yáng)州 南寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python實(shí)現(xiàn)拼音轉(zhuǎn)換》,本文關(guān)鍵詞  Python,實(shí)現(xiàn),拼音,轉(zhuǎn)換,Python,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python實(shí)現(xiàn)拼音轉(zhuǎn)換》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python實(shí)現(xiàn)拼音轉(zhuǎn)換的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 鹤岗市| 盐城市| 保康县| 额济纳旗| 尉氏县| 万源市| 宜昌市| 牙克石市| 宣武区| 鄂温| 文水县| 岳阳县| 喀什市| 漯河市| 两当县| 河曲县| 黎川县| 平原县| 张掖市| 贡觉县| 蓝田县| 安西县| 本溪| 慈利县| 安泽县| 广宁县| 磐石市| 海林市| 巴里| 工布江达县| 红桥区| 枣阳市| 呼和浩特市| 延边| 东安县| 关岭| 桃园县| 泸水县| 广灵县| 镇巴县| 昌宁县|