最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年06月07日 15:29:49   作者:一天一篇Python庫  
拼音轉(zhuǎn)換指的是將漢字轉(zhuǎn)為拼音的過程。本文介紹了Python實現(xiàn)拼音轉(zhuǎn)換,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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

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

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

拼音轉(zhuǎn)換

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

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

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

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

運行之后,控制臺輸出如下:

拼音輸出

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

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

輸出音調(diào)

鑒于我們已經(jīng)知道了如何轉(zhuǎn)換漢字到拼音,那么我們現(xiàn)在需要實現(xiàn)的是單獨獲取每個漢字的音調(diào),不需要聲調(diào)?,F(xiàn)在該如何去實現(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類,這個類可以幫我們處理很多的拼音相關(guān)的問題,比如這里的獲取音調(diào)。

運行之后,效果如下:

輸出音調(diào)

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

輸出聲調(diào)

既然可以只輸出音調(diào),那么肯定也可以單獨輸出聲調(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=" ")

運行之后,效果如下:

輸出聲調(diào)

這里我們通過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=" ")

運行之后,效果如下:

輸出聲母

這里我們用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=" ")

運行之后,效果如下:

輸出韻母

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

處理數(shù)字拼音

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

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

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

運行之后,效果如下:

輸出none

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

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

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

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

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

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

輸出數(shù)字

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

相關(guān)文章

  • 關(guān)于python pycharm中輸出的內(nèi)容不全的解決辦法

    關(guān)于python pycharm中輸出的內(nèi)容不全的解決辦法

    這篇文章主要介紹了關(guān)于python pycharm中輸出的內(nèi)容不全的解決辦法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • VSCode2022配置Python3.9.6的詳細教程

    VSCode2022配置Python3.9.6的詳細教程

    這篇文章主要介紹了VSCode2022配置Python3.9.6教程,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Python txt文件如何轉(zhuǎn)換成字典

    Python txt文件如何轉(zhuǎn)換成字典

    這篇文章主要介紹了Python txt文件如何轉(zhuǎn)換成字典,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-11-11
  • 酷! 程序員用Python帶你玩轉(zhuǎn)沖頂大會

    酷! 程序員用Python帶你玩轉(zhuǎn)沖頂大會

    程序員用Python玩轉(zhuǎn)王思聰?shù)摹稕_頂大會》,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python可以用哪些數(shù)據(jù)庫

    python可以用哪些數(shù)據(jù)庫

    在本篇文章里小編給大家整理的是關(guān)于python支持哪些數(shù)據(jù)庫的相關(guān)知識點內(nèi)容,有興趣的朋友們可以學(xué)習下。
    2020-06-06
  • Python 查看文件的讀寫權(quán)限方法

    Python 查看文件的讀寫權(quán)限方法

    下面小編就為大家分享一篇Python 查看文件的讀寫權(quán)限方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 最新評論

    石林| 民丰县| 台州市| 邵武市| 蒙自县| 丰宁| 阿勒泰市| 肥城市| 石台县| 定西市| 锡林浩特市| 平昌县| 凤山县| 寿阳县| 普兰店市| 安溪县| 玉环县| 镇原县| 九寨沟县| 永州市| 龙口市| 石狮市| 长宁区| 鄂州市| 东山县| 龙陵县| 肥城市| 垫江县| 亚东县| 卢龙县| 海城市| 吉木萨尔县| 临汾市| 溧水县| 同江市| 寻甸| 吉林市| 忻州市| 虹口区| 垦利县| 合川市|