pypinyin: 汉字转换为拼音
安装:pip install pypinyin
直接上例子:
import pypinyin
from pypinyin import Style
# def pinyin(hans, style=Style.TONE, heteronym=False, errors='default', strict=True)
# 结果会是一个二维的列表,每个元素都另外成了一个列表,其中包含了每个字的读音( pinyin 方法默认使用了 TONE 的风格,即有声调的风格模式)
word1 = pypinyin.pinyin('你好')
print(word1)
# [['nǐ'], ['hǎo']]
# -----------------------------------------------------
# 启用多音字模式
word2 = pypinyin.pinyin('朝阳', heteronym=True)
print(word2)
# [['zhāo', 'cháo'], ['yáng']]
# 这里的多音词并不是指单个字的多音字,而是这个词语本身就有两种读音
word3 = pypinyin.pinyin('大夫', heteronym=True)
print(word3)
# [['dài'], ['fū']]; 此处就不会输出“da” 因为大夫只有一个读法
# ----------------------------------------------------
print(pypinyin.pinyin('朝阳',style=Style.TONE)) #[['zhāo'], ['yáng']]
print(pypinyin.pinyin('朝阳',style=Style.TONE2)) #[['zha1o'], ['ya2ng']]
print(pypinyin.pinyin('朝阳',style=Style.TONE3, heteronym=True)) #[['zhao1', 'chao2'], ['yang2']]
print(pypinyin.pinyin('朝阳',style=Style.FIRST_LETTER)) #[['z'], ['y']] #首字母风格,只返回拼音的首字母部分
print(pypinyin.pinyin('朝阳',style=Style.INITIALS)) #[['zh'], ['']] #声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母)
# ==================================================================================
# def lazy_pinyin(hans, style=Style.NORMAL, errors='default', strict=True)
# 有没有一个方法直接给我们一个一维列表呢,我们可以使用 lazy_pinyin 方法来实现(lazy_pinyin 方法默认使用了 NORMAL,即无声调的风格模式);不考虑多音字;
word4 = pypinyin.lazy_pinyin('你好')
print(word4)
# ['ni', 'hao']
# ----------------------------------------------------
print(pypinyin.lazy_pinyin('中国', style=Style.NORMAL)) #['zhong', 'guo']
print(pypinyin.lazy_pinyin('中国', style=Style.TONE2)) #['zho1ng', 'guo2']
print(pypinyin.lazy_pinyin('中国', style=Style.TONE3)) #['zhong1', 'guo2']
print(pypinyin.lazy_pinyin('中国', style=Style.FIRST_LETTER)) #['z', 'g'] #首字母风格,只返回拼音的首字母部分
print(pypinyin.lazy_pinyin('中国', style=Style.INITIALS)) #['zh', 'g'] #声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母)
print(pypinyin.lazy_pinyin('战略', v_to_u=True)) #['zhan', 'lüe'] ## 不使用 v 表示 ü
print(pypinyin.lazy_pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=True)) #['yi1', 'shang5'] # 使用 5 标识轻声
#-----------------------------------------------------
#===============================================================================
# 处理不包含拼音的字符
print(pypinyin.pinyin('你好☆☆')) #[['nǐ'], ['hǎo'], ['☆☆']] #默认不作任何处理,原样返回;
print(pypinyin.pinyin('你好☆☆', errors='ignore')) # [['nǐ'], ['hǎo']] #忽略
print(pypinyin.pinyin('你好☆☆',errors='replace')) #[['nǐ'], ['hǎo'], ['26062606']] # 替换为去掉 \u 的 unicode 编码
#callable 对象 : 提供一个回调函数,接受无拼音字符(串)作为参数, 支持的返回值类型: unicode 或 list 或 None 。:
print(pypinyin.pinyin('你好☆☆', errors=lambda x: 'star')) #[['nǐ'], ['hǎo'], ['star']]
print(pypinyin.pinyin('你好☆☆', errors=lambda x: None)) #[['nǐ'], ['hǎo']]
# 返回值类型为 list 时,会自动 expend list
print(pypinyin.pinyin('你好☆☆', errors=lambda x: ['star' for _ in x])) #[['nǐ'], ['hǎo'], ['star'], ['star']]
print(pypinyin.pinyin('你好☆☆', heteronym=True, errors=lambda x: [['star', '☆'] for _ in x])) #[['nǐ'], ['hǎo'], ['star', '☆'], ['star', '☆']]
分类:
python学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)