教你使用Python pypinyin库实现汉字转拼音


Posted in Python onMay 27, 2021

一、前言

这里我先为大家提供一个中文网站,大家可以下去更深入的学习。

https://pypi.org/project/pypinyin/

pypinyin库,主要有几下几个特性:

  • 智能匹配最正确的拼音;
  • 支持多音字、繁体字;
  • 支持多种不同拼音、注音风格;

该库属于第三方Python库,因此在使用之前,需要提前安装。

pip install pypinyin

然后,导入该库即可。

import pypinyin
from pypinyin import pinyin

二、pypinyin库的使用

先来看一个最基本的例子。

from pypinyin import pinyin
pinyin("吃饭")

结果如下:

教你使用Python pypinyin库实现汉字转拼音

有些字,可能是多音字,再看下面这个例子。

from pypinyin import pinyin
pinyin('冯',heteronym=True)
pinyin('朝',heteronym=True)
pinyin('同',heteronym=True)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

仔细观察上述打印结果,生成的都是二维列表嵌套,这样解析起来,真费劲!

能不能生成一维列表呢?

from pypinyin import lazy_pinyin
lazy_pinyin("数据分析与统计学之美")

结果如下:

教你使用Python pypinyin库实现汉字转拼音

问题又来了!

这里虽然是一维列表,但是没有声调了,这不尴尬了吗?

这里面就涉及到一个风格转换的问题了。

from pypinyin import lazy_pinyin,Style
lazy_pinyin("数据分析与统计学之美",style=Style.TONE)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

原来这里有一个Style类,供我们选择风格,常用的风格有下面这14种。

#: 普通风格,不带声调。如: 中国 -> ``zhong guo``
NORMAL  =  0

#: 标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如: 中国 -> ``zhōng guó``
TONE  =  1

#: 声调风格2,即拼音声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> ``zho1ng guo2``
TONE2  =  2

#: 声调风格3,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``zhong1 guo2``
TONE3  =  8

#: 声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见 `#27`_)。如: 中国 -> ``zh g``
INITIALS  =  3

#: 首字母风格,只返回拼音的首字母部分。如: 中国 -> ``z g``
FIRST_LETTER  =  4

#: 韵母风格,只返回各个拼音的韵母部分,不带声调。如: 中国 -> ``ong uo``
FINALS  =  5

#: 标准韵母风格,带声调,声调在韵母第一个字母上。如:中国 -> ``ōng uó``
FINALS_TONE  =  6

#: 韵母风格2,带声调,声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> ``o1ng uo2``
FINALS_TONE2  =  7

#: 韵母风格3,带声调,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``ong1 uo2``
FINALS_TONE3  =  9

#: 注音风格,带声调,阴平(第一声)不标。如: 中国 -> ``ㄓㄨㄥ ㄍㄨㄛ?``
BOPOMOFO  =  10

#: 注音风格,仅首字母。如: 中国 -> ``ㄓ ㄍ``
BOPOMOFO_FIRST  =  11

#: 汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``чжун1 го2``
CYRILLIC  =  12

#: 汉语拼音与俄语字母对照风格,仅首字母。如: 中国 -> ``ч г``
CYRILLIC_FIRST  =  13

如果你的文字中,除了汉字,还有其它符号以及英文,会打印出怎么样的效果呢?

from pypinyin import lazy_pinyin
lazy_pinyin('Hello,我是?',style=Style.TONE)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

汉字打印出来就行,英文、表情符号不用打印出来最好,应该怎么办呢?

这里有一个errors参数呢,来看看例子。

from pypinyin import lazy_pinyin

lazy_pinyin('Hello,我是?',style=Style.TONE,errors='ignore')

结果如下:

教你使用Python pypinyin库实现汉字转拼音

如果你对pypinyin库的返回结果不满意,可以自定义一个库呀!这里可以使用load_phrases_dict 方法。

我们先来看一个例子:

from pypinyin import lazy_pinyin

lazy_pinyin("黄同学",style=Style.TONE)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

“黄同学” 的同,明明是二声,这里成了四声。

from pypinyin import lazy_pinyin,  load_phrases_dict

personalized_dict = {'黄同学':  [['huáng'], ['tòng'], ['xué']]}

load_phrases_dict(personalized_dict)

lazy_pinyin("黄同学",style=Style.TONE)

结果如下:

教你使用Python pypinyin库实现汉字转拼音

到此这篇关于教你使用Python pypinyin库实现汉字转拼音的文章就介绍到这了,更多相关Python pypinyin库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python调用windows api锁定计算机示例
Apr 17 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
python3个性签名设计实现代码
Jun 19 Python
python实现黑客字幕雨效果
Jun 21 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
Python基础知识点 初识Python.md
May 14 Python
Django框架使用mysql视图操作示例
May 15 Python
Python帮你识破双11的套路
Nov 11 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
python实现飞船大战
Apr 24 Python
python属于软件吗
Jun 18 Python
用Python制作灯光秀短视频的思路详解
Apr 13 Python
基于tensorflow权重文件的解读
May 26 #Python
解决Python字典查找报Keyerror的问题
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
tensorflow中的数据类型dtype用法说明
May 26 #Python
详解Python魔法方法之描述符类
May 26 #Python
使用tensorflow 实现反向传播求导
python基础学习之递归函数知识总结
You might like
php session处理的定制
2009/03/16 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
ext 代码生成器
2009/08/07 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
详解JavaScript中的this指向问题
2021/02/05 Javascript
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
python 字典操作提取key,value的方法
2019/06/26 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
策划总监岗位职责
2014/02/16 职场文书
新生入学欢迎词
2015/01/26 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
mysql脏页是什么
2021/07/26 MySQL
详解JavaScript中Arguments对象用途
2021/08/30 Javascript