基于Python的开源模块:pypinyin,支持拼音风格的特性
创始人
2025-11-03 15:05:34
0

汉字转拼音可用于汉字批量注音、文本排序、文本拼音检索等常见场景。

现在网上有很多拼音转换工具,也有很多基于Python的ta发布开源AI工具AudioCraft,帮助用户根据文本提示创作音乐和音频' target='_blank'>开源模块。 明天给大家介绍一个功能和特性最多的模块:pypinyin,它支持以下功能:

1.计划

在开始之前,您需要确保 Python 和 pip 已成功安装在您的笔记本电脑上。 如果没有,您可以访问这篇文章:安装它。

(可选1)如果使用Python进行数据分析,可以直接安装Anaconda:,它有外部Python和pip。

(可选2)据悉,建议大家使用VSCode编辑器,它有很多优点:。

请选择以下任意一种方式输入安装依赖的命令:

1、在Windows环境下打开Cmd(开始-运行-CMD)。

2. 在 MacOS 环境中打开终端(command+space 并输入 Terminal)。

3.如果您使用的是VSCode编辑器或Pycharm,可以直接使用界面底部的Terminal。

pip install pypinyin

2.基本使用

最常见的拼音转换方法如下:

# Python实用宝典
from pypinyin import pinyin, lazy_pinyin, Style
pinyin('中心')
# [['zhōng'], ['xīn']]

识别多音字:

# Python实用宝典
from pypinyin import pinyin, lazy_pinyin, Style
pinyin('中心', heteronym=True) # 启用多音字模式
# [['zhōng', 'zhòng'], ['xīn']]

将输出样式设置为仅识别第一个字母:

# Python实用宝典
from pypinyin import pinyin, lazy_pinyin, Style
pinyin('中心', style=Style.FIRST_LETTER) # 设置拼音风格
# [['z'], ['x']]

改变声调输出位置,在相应字母前面显示声调,或者在拼音末尾显示声调:

# Python实用宝典
from pypinyin import pinyin, lazy_pinyin, Style

# TONE2 在相应字母的后面显示音调
pinyin('中心', style=Style.TONE2, heteronym=True)
# [['zho1ng', 'zho4ng'], ['xi1n']]

# TONE3 拼音的最后显示音调
pinyin('中心', style=Style.TONE3, heteronym=True)
# [['zhong1', 'zhong4'], ['xin1']]

忽略多音字符:

# Python实用宝典
from pypinyin import pinyin, lazy_pinyin, Style
lazy_pinyin('中心') # 不考虑多音字的情况
# ['zhong', 'xin']

不要使用 v 代替 ü:

# Python实用宝典
from pypinyin import pinyin, lazy_pinyin, Style
lazy_pinyin('战略', v_to_u=True) # 不使用 v 表示 ü
# ['zhan', 'lüe']

标签耳语:

# Python实用宝典
from pypinyin import pinyin, lazy_pinyin, Style
# 使用 5 标识轻声
lazy_pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=True)
# ['yi1', 'shang5']

使用命令行一键识别拼音:

# Python实用宝典
python -m pypinyin 音乐
# yīn yuè

3. 中级使用

自定义拼音显示样式

我们可以使用register()来满足自定义拼音样式的需求:

from pypinyin import lazy_pinyin

from pypinyin.style import register

@register('kiss')
def kiss(pinyin, **kwargs):
    return ' {0}'.format(pinyin)

  
lazy_pinyin('么么', style='kiss')
# [' me', ' me']

正如您所看到的,通过定义 Kiss 函数并使用寄存器装饰器,我们生成了一种新样式。 这种风格可以直接用于拼音转换参数,特别方便。

另外,所有模块都带有样式及其效果如下:

@unique
class Style(IntEnum):
    """拼音风格"""

    #: 普通风格,不带声调。如:中国 -> ``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

处理特殊字符

默认情况下,不会对文本中的特殊字符进行任何处理,并返回原始外观:

pinyin('你好☆☆')
# [['nǐ'], ['hǎo'], ['☆☆']]

不过,如果你想处理这样的特殊字符,也是可以的,例如:

忽略:忽略该字符

pinyin('你好☆☆', errors='ignore')
# [['nǐ'], ['hǎo']]

错误:替换为删除 \u 的 unicode 编码:

pinyin('你好☆☆', errors='replace')
# [['nǐ'], ['hǎo'], ['26062606']]

callable 对象:提供接受非拼音字符(字符串)作为参数的反弹函数。 支持的返回值类型:unicode 或 list 或 None:

pinyin('你好☆☆', errors=lambda x: 'star')
# [['nǐ'], ['hǎo'], ['star']]

pinyin('你好☆☆', errors=lambda x: None)
# [['nǐ'], ['hǎo']]

当返回值类型为list时汉字转拼音软件,会手动添加expandlist:

pinyin('你好☆☆', errors=lambda x: ['star' for _ in x])
# [['nǐ'], ['hǎo'], ['star'], ['star']]

# 指定多音字
pinyin('你好☆☆', heteronym=True, errors=lambda x: [['star', '☆'] for _ in x])
# [['nǐ'], ['hǎo'], ['star', '☆'], ['star', '☆']]

自定义拼音库

如果你觉得模块输出效果不是你想要的,或者你想做特殊处理,你可以通过load_single_dict()或load_phrases_dict()以自定义拼音库的形式修改结果:

from pypinyin import lazy_pinyin, load_phrases_dict, Style, load_single_dict
hans = '桔子'
lazy_pinyin(hans, style=Style.TONE2)
# ['jie2', 'zi3']
load_phrases_dict({'桔子': [['jú'], ['zǐ']]}) # 增加 "桔子" 词组
lazy_pinyin(hans, style=Style.TONE2)
# ['ju2', 'zi3']

hans = '还没'
lazy_pinyin(hans, style=Style.TONE2)
# ['hua2n', 'me2i']
load_single_dict({ord('还'): 'hái,huán'}) # 调整 "还" 字的拼音顺序
lazy_pinyin('还没', style=Style.TONE2)
# ['ha2i', 'me2i']

4.最后

让我提醒您,我们的免费图书抽奖活动仍在继续。 您可以参加下面的免费抽奖活动,赢取《Python数据分析从新手到专家》三本书。 结果立即出炉,没有套路!

与您的同学分享,您将获得额外的获胜机会。 抽奖概率约为0.5%:

我们的文章到这里就结束了。 如果你喜欢明天的Python实用教程,请继续关注Python实用指南。

如果您有任何疑问汉字转拼音软件,可以在公众号后台回复:进群,回答红字对应的验证信息,进入互助群提问。

原创并不容易。 希望大家能够点赞并观看下面的内容,以支持我继续创作。 谢谢你!

相关内容

热门资讯

六... 你知道移动硬盘怎么用吗?相信很多人对这个问题都会嗤之以鼻,但当移动硬盘真的出现故障,重要数据丢失时,...
S... IT之家5月21日报道,过去几个月,在各大论坛和推特等社交平台上经常能看到用户抱怨自己新购买的4TB...
测... 1 简介这几天测试了Seagate和Western Digital的2TB笔记本电脑硬盘。其实我并没...
P... 对于大多数工作来说,Photoshop 是非常常用的工具。很多时候我们需要使用这些工具来满足一些简单...
西... 如今由于我们在工作和生活中经常需要存储大量的数据,对存储介质的需求也随之增加,普通U盘虽然方便携带,...
微... 问题描述:隐藏表白文字的表情包?隐藏表白文字的表情包?答:好像有个叫群暗恋,分享在群里,两个人互相点...
摄... 早上好,我是叶子,今天是我陪大家摄影早自习的第1508天。今天,我们“摄影自修室”有一位叫Kily的...
上... 点击Shadage黑科技关注我并加★Star★不知道我的粉丝里有多少是猫咪呢?你是不是也是上班族,每...
E... 大家好,我是IT分享者,又名皮皮。前言今天要给大家介绍的是服装设计中经常用到的软件——ET。这个ET...
E... 大家好,我是皮皮。前言今天要给大家介绍的是服装设计中经常用到的软件——ET。这个ET并不是外星人,而...
中银订购app投资者被骗资金怎...   现在网上各种投资软件,宣传的小投资高收益,其实就是一个噱头!不要点击和下载不明软件、网址,这些都...
华通白银APP不赚钱倒亏钱是骗...   华通白银APP在抖音等平台给投资人进行虚假、夸大宣传,目的是诱导普通人去平台充值,进行交易。平台...
板... 如果您想获取该软件,请阅读文章末尾!很多刚学板绘的朋友都不知道从何下手,甚至不知道用什么软件。首先我...
黑... 为了防止错过资源更新的消息,可以添加“黑科技软件指南”公众号到“Star⭐”,非常感谢~资源获取方式...
关... 前言非常感谢当贝给予的体验喵喵机P2S的机会,作为喵喵机P1的老用户,日常使用感觉200dpi不够用...
盘... 大家好,我是IT分享者,又名皮皮。前言今天要给大家介绍的是服装设计中经常用到的软件——ET。这个ET...
思... 思维导图在学习、写作、交流、演讲等方面有着广泛的应用,它能高效地拓展思维,是一种革命性的思维工具。借...
风... 作为国产品牌中一款敢于尽情发挥个性的“喵星”车型,外观十分出众、造型奇特的风神AX4正凭借精准的定位...
迅... 随着时代的进步,互联网技术的发展,人们的工作节奏加快,效率提高。人们对工作的要求和质量越来越高。在工...
e... 软件界面介绍整个界面由以下区域组成1. 模型树左侧是目录样式区域et软件,即模型树。创建新项目时,只...