教你使用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中的闭包总结
Sep 18 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 Python
Jupyter notebook远程访问服务器的方法
May 24 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
Python玩转Excel的读写改实例
Feb 22 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
python hough变换检测直线的实现方法
Jul 12 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
Python sklearn中的.fit与.predict的用法说明
Jun 28 Python
python 5个实用的技巧
Sep 27 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生成静态页面的简单示例
2014/04/17 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
webpack4 处理CSS的方法示例
2018/09/03 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
python返回昨天日期的方法
2015/05/13 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
python解析含有重复key的json方法
2019/01/22 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
python科学计算之narray对象用法
2019/11/25 Python
python实现ftp文件传输功能
2020/03/20 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
农村党支部先进事迹
2014/01/14 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
环保倡议书
2014/04/14 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
停车场管理协议书范本
2014/10/08 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
python全面解析接口返回数据
2022/02/12 Python