前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 识别中文生成带声调的拼音

Python 识别中文生成带声调的拼音

作者头像
为为为什么
发布2023-07-20 20:51:56
5750
发布2023-07-20 20:51:56
举报
文章被收录于专栏:又见苍岚

本文记录使用 Python pypinyin 库获取中文声调拼音的方法。

pypinyin

将汉字转为拼音。可以用于汉字注音、排序、检索 。

特性
  • 根据词组智能匹配最正确的拼音。
  • 支持多音字。
  • 简单的繁体支持,注音支持,威妥玛拼音支持。
  • 支持多种不同拼音/注音风格。
相关地址

安装

1

pip install pypinyin

使用

引入库

12

import pypinyinfrom pypinyin import pinyin

基础用法

pinyin 方法输入中文字符,可以自动识别多音字音调。

1234

pinyin('他办事从不草率,效率一向很高')-->['tā', 'bàn', 'shì', 'cóng', 'bù', 'cǎo', 'shuài', ',', 'xiào', 'lǜ', 'yí', 'xiàng', 'hěn', 'gāo']

多音字

pinyin 方法中加入参数 heteronym=True 识别多音字

1234

pinyin('冯',heteronym=True)-->['féng', 'píng']

生成一维嵌套列表

lazy_pinyin 方法可以直接输出一维列表

1234

pypinyin.lazy_pinyin('我收集的材料散失了,散文没法写了')-->'wo', 'shou', 'ji', 'de', 'cai', 'liao', 'san', 'shi', 'le', ',', 'san', 'wen', 'mei', 'fa', 'xie', 'le'

音调风格

可以通过 style 参数控制输出拼音格式,常用的风格有下面这14种。

1234567891011121314151617181920212223242526272829303132333435363738394041

#: 普通风格,不带声调。如: 中国 -> zhong guoNORMAL = 0#: 标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如: 中国 -> zhōng guóTONE = 1#: 声调风格2,即拼音声调在各个韵母之后,用数字 1-4 进行表示。如: 中国 -> zho1ng guo2TONE2 = 2#: 声调风格3,即拼音声调在各个拼音之后,用数字 1-4 进行表示。如: 中国 -> zhong1 guo2TONE3 = 8#: 声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见 #27_)。如: 中国 -> zh gINITIALS = 3#: 首字母风格,只返回拼音的首字母部分。如: 中国 -> z gFIRST_LETTER = 4#: 韵母风格,只返回各个拼音的韵母部分,不带声调。如: 中国 -> ong uoFINALS = 5#: 标准韵母风格,带声调,声调在韵母第一个字母上。如:中国 -> ōng uóFINALS_TONE = 6#: 韵母风格2,带声调,声调在各个韵母之后,用数字 1-4 进行表示。如: 中国 -> o1ng uo2FINALS_TONE2 = 7#: 韵母风格3,带声调,声调在各个拼音之后,用数字 1-4 进行表示。如: 中国 -> ong1 uo2FINALS_TONE3 = 9#: 注音风格,带声调,阴平(第一声)不标。如: 中国 -> ㄓㄨㄥ ㄍㄨㄛˊBOPOMOFO = 10#: 注音风格,仅首字母。如: 中国 -> ㄓ ㄍBOPOMOFO_FIRST = 11#: 汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字 1-4 进行表示。如: 中国 -> чжун1 го2CYRILLIC = 12#: 汉语拼音与俄语字母对照风格,仅首字母。如: 中国 -> ч гCYRILLIC_FIRST = 13

示例:

1234

pinyin('我收集的材料散失了,散文没法写了', style=pypinyin.STYLE_TONE3)-->['wo3', 'shou1', 'ji2', 'de', 'cai2', 'liao4', 'san4', 'shi1', 'le', ',', 'san3', 'wen2', 'mei2', 'fa3', 'xie3', 'le']

轻音

轻音默认不做声调标识,如果需要额外标注轻音为5,需要加入参数 neutral_tone_with_five=True

1234

lazy_pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=True)-->'yi1', 'shang5'

自定义拼音

如果对拼音返回的结果不满意可以自定义词语明确拼音内容,例如:

1234

print(pypinyin.pinyin('又见苍岚'))-->['yòu', 'jiàn', 'cāng', 'lán']

我想改 这个子的拼音,我就自定义一个字典,用 load_phrases_dict 方法加载进去:

12

personalized_dict = {'又见苍岚': ['yòu', 'xiàn', 'cāng', 'lán']}pypinyin.load_phrases_dict(personalized_dict)

再次输出该词语的拼音就改过来了:

1234

print(pypinyin.pinyin('又见苍岚'))-->['yòu', 'xiàn', 'cāng', 'lán']

中英混搭

可以自动处理标点符号和中英文编码:

1234

pypinyin.lazy_pinyin("我觉得OK!")) -->'wo', 'jue', 'de', 'OK!'

参考资料

文章链接: https://cloud.tencent.com/developer/article/2303816

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年7月8日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pypinyin
    • 特性
      • 相关地址
      • 安装
      • 使用
        • 引入库
          • 基础用法
            • 多音字
              • 生成一维嵌套列表
                • 音调风格
                  • 轻音
                    • 自定义拼音
                      • 中英混搭
                      • 参考资料
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档