首页 > 其他分享 >pypinyin: 汉字转换为拼音

pypinyin: 汉字转换为拼音

时间:2022-09-27 16:25:33浏览次数:76  
标签:Style 拼音 lazy pinyin style 汉字 pypinyin print

安装: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中拼音库PyPinyin的使用
pypinyin 0.47.1

标签:Style,拼音,lazy,pinyin,style,汉字,pypinyin,print
From: https://www.cnblogs.com/ethan-wen/p/16734921.html

相关文章

  • 用SQL编写获取拼音码的函数
    CREATEfunction[dbo].[fn_GetPy](@strnvarchar(4000))returnsnvarchar(4000)--WITHENCRYPTIONasbegindeclare@intLenintdecl......
  • 如何在Excel/WPS表格中使用拼音公式?
     如何将文字在表格中转换成拼音的形式呢?相信屏幕前很多老师都有这个疑问。今天小编就教大家如何使用公式批量转换文字为拼音。首先,先安装下Excel网络函数库,网址:www.exce......
  • css——复选框汉字不对齐
    1.复选框汉字不对齐<inputtype="checkbox"v-model="isAll"/><span>全选</span>2.input、span加上vertical-align:middle;属性input{vertical-alig......
  • vue 获取汉字拼音
    import{pinyin}from'pinyin-pro';//获取带音调拼音pinyin('汉语拼音');//'hànyǔpīnyīn'//获取不带声调的拼音pinyin('汉语拼音',{toneType:'non......
  • PHP 生成随机中文汉字 gb2312转utf8
    学习记录留作参考祝君好运参考:信息交换用汉字编码字符集基本集GB/T2312-1980有些情况下需要生成一些随机汉字,参考了一些网上一些方法,感觉有些模糊。于是找到了g......
  • 谷歌拼音自带lua
    functionfast_string_banji(argument) return{"快捷1","快捷2","快捷3","快捷4"}endfunctionfast_string_LDZY_DXXY(argument) return{"快捷1","快......
  • 学习笔记270—Excel如何快速批量将中文名字转换为拼音?
    Excel如何快速批量将中文名字转换为拼音?在excel表格中,我们可以通过内置的功能来进行拼音的编辑,但无法直接批量地转换中文为拼音。当然,这里是跳过了vba的用法,因为vba要求......
  • Java 汉字转拼音
    需求背景因为用户前台输入的是汉字,但是在创建图数据库的Tag节点的时候,虽然能用中文,但是我觉得还是不要用了,就像是Java也能定义中文的类和字段一样奇怪,但是又没......
  • ElasticSearch拼音分词
    有时我们有允许用户按照拼音搜索的需求,一个解决办法是在插入文档的分词过程中就生成对应的拼音,同时插入进倒排索引。我们可以使用这个拼音分词插件:medcl/elasticsearch-an......
  • MySQL获取汉字的拼音首字母
    一、函数这里是通过函数调用进行获取汉字的拼音首字母。DELIMITER$$CREATEFUNCTION`pinyin`(P_NAMEVARCHAR(255))RETURNSvarchar(255)CHARSETutf8DETERMINIST......