色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:2日期:2022-06-17 10:49:46
什么是拼音轉(zhuǎn)換

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

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

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

拼音轉(zhuǎn)換

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

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

下面,我們來(lái)看一段代碼示例:

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

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

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

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

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

輸出音調(diào)

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

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庫(kù)中的Pinyin類(lèi),這個(gè)類(lèi)可以幫我們處理很多的拼音相關(guān)的問(wèn)題,比如這里的獲取音調(diào)。

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

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

需要注意的是,前面博文已經(jīng)說(shuō)過(guò)了,通過(guò)python進(jìn)行HanLP庫(kù)使用時(shí),盡量調(diào)用Java類(lèi)進(jìn)行處理,因?yàn)镴ava類(lèi)的處理時(shí)間比python快很多。這里我們通過(guò)Pinyin類(lèi)的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)行之后,效果如下:

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

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

輸出聲母

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

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

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

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

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

輸出韻母

接著,我們?cè)賮?lái)輸出韻母。代碼如下:

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

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

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

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

處理數(shù)字拼音

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

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

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

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

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

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

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

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

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

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

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

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

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中国一级毛片特级毛片 | 手机看片自拍日韩日韩高清 | 国产精品成人久久久久久久 | 久久超级碰| 九一精品| 男女晚上爱爱的视频在线观看 | 国产成人精品免费视频软件 | 亚洲精品国产成人专区 | 国产一级毛片午夜 | 一区精品麻豆经典 | 手机看片日韩日韩国产在线看 | 日本成人免费观看 | 亚洲黄色免费在线观看 | 国产高清在线精品一区在线 | 日韩免费一级毛片欧美一级日韩片 | 91福利网| 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 久久久久琪琪精品色 | 亚洲巨乳自拍在线视频 | 国产欧美视频在线观看 | 欧美一级专区免费大片俄罗斯 | 国产精品久久久久影院色老大 | aaaaaaa一级毛片| 综合在线视频 | 国产精自产拍久久久久久蜜 | 欧美.亚洲.日本一区二区三区 | 成人合成mv福利视频网站 | 国产精品国产高清国产专区 | 久久性久久性久久久爽 | 欧美在线观看高清一二三区 | 伊人精品视频 | 性视频网站在线 | 国产成人免费网站 | 青青自拍视频一区二区三区 | 大尺度福利视频在线观看网址 | 亚洲国产成人精品久久 | 欧美大片国产在线永久播放 | 国产精品美女久久福利网站 | 在线视频日韩精品 | 免费视频18 | 黄色影视频 |