电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python實現拼音轉換

瀏覽:7日期:2022-06-17 10:49:46
什么是拼音轉換

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

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

本篇博文將介紹字符串到拼音的轉換。

拼音轉換

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

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

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

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

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

Python實現拼音轉換

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

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

輸出音調

鑒于我們已經知道了如何轉換漢字到拼音,那么我們現在需要實現的是單獨獲取每個漢字的音調,不需要聲調。現在該如何去實現呢?不妨先來看看代碼:

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

如上面代碼所示,我們獲取了Java的HanLP庫中的Pinyin類,這個類可以幫我們處理很多的拼音相關的問題,比如這里的獲取音調。

運行之后,效果如下:

Python實現拼音轉換

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

輸出聲調

既然可以只輸出音調,那么肯定也可以單獨輸出聲調。具體代碼如下:

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

運行之后,效果如下:

Python實現拼音轉換

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

輸出聲母

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

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=' ')

運行之后,效果如下:

Python實現拼音轉換

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

輸出韻母

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

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=' ')

運行之后,效果如下:

Python實現拼音轉換

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

處理數字拼音

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

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

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

運行之后,效果如下:

Python實現拼音轉換

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

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

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

相信看了上面方法的讀者應該很快就知道了,第3個布爾類型就是轉換數字與保留數字的關鍵參數,這里我們再來變換代碼:

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

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

Python實現拼音轉換

到此這篇關于Python實現拼音轉換的文章就介紹到這了,更多相關Python 拼音轉換內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业| 字典-新华字典-在线字典查字-字典趣| 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 壹作文_中小学生优秀满分作文大全 | 干培两用箱-细菌恒温培养箱-菲斯福仪器 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 开云(中国)Kaiyun·官方网站 - 登录入口| 脱硫搅拌器厂家-淄博友胜不锈钢搅拌器厂家 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 杭州可当科技有限公司—流量卡_随身WiFi_AI摄像头一站式解决方案 | 江西自考网 | 单锥双螺旋混合机_双螺旋锥形混合机-无锡新洋设备科技有限公司 | 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 塑胶地板-商用PVC地板-pvc地板革-安耐宝pvc塑胶地板厂家 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 消防设施操作员考试报名时间,报名入口,报考条件 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 精密五金加工厂-CNC数控车床加工_冲压件|蜗杆|螺杆加工「新锦泰」 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 灌装封尾机_胶水灌装机_软管灌装封尾机_无锡和博自动化机械制造有限公司 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 硬度计,金相磨抛机_厂家-莱州华煜众信试验仪器有限公司 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 |