首页 » PHP教程 » phppinyin库技巧_python ​pythonpinyin库

phppinyin库技巧_python ​pythonpinyin库

访客 2024-12-06 0

扫一扫用手机浏览

文章目录 [+]

python-pinyin库是一个汉字拼音转换工具,其紧张功能有:

根据词组智能匹配最精确的拼音。
支持多音字。
大略的繁体支持, 注音支持。
支持多种不同拼音风格。

安装命令为:​pip install pypinyin​​加粗样式官方仓库为:​​​python-pinyin​​

phppinyin库技巧_python ​pythonpinyin库

官方中文文档为:​​pypinyin文档​​

phppinyin库技巧_python ​pythonpinyin库
(图片来自网络侵删)
文章目录1 api利用1.1 pypinyin.pinyin1.2 pypinyin.lazy_pinyin1.3 load_single_dict和load_phrases_dict1.4 pypinyin.slug1.5 pypinyin.style.register2 参考1 api利用1.1 pypinyin.pinyin

pypinyin的常用函数为pinyin,即将汉字转换为拼音,返回汉字的拼音列表。

pypinyin.pinyin(hans, style=Style.TONE, heteronym=False, errors=‘default’, strict=True, v_to_u=False, neutral_tone_with_five=False)

pinyin的参数先容如下:

参数hans:(unicode 字符串或字符串列表) – 汉字字符串( '你好吗' )或列表( ['你好', '吗'] )。
style:指定拼音风格,默认是 TONE(标注拼音) 风格。
errors:指定如何处理没有拼音的字符。
heteronym: 是否启用多音字。
strict :只获取声母或只获取韵母干系拼音风格的返回结果时,是否严格遵照《汉语拼音方案》来处理声母和韵母。
v_to_u (bool):无音调干系拼音风格下的结果是否利用 ü 代替原来的 v ,当为False时结果中将利用 v 表示 ü。
neutral_tone_with_five (bool):音调风格下是否用5表示轻声。
返回:拼音列表。
返回类型:list。

拼音风格style的可选参数列表如下:

#: 普通风格,不带音调。
如: 中国 -> ``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#: 威妥玛拼音/韦氏拼音/威式拼音风格,无音调WADEGILES = 14

errors处理办法如下:

'default': 保留原始字符'ignore': 忽略该字符'replace': 更换为去掉 \u 的 unicode 编码字符串 ('\u90aa' => '90aa')callable工具: 回调函数之类的可调用工具。

详细函数和参数利用如下:

根本利用

from pypinyin import pinyinresult = pinyin('中央')print(type(result))print(result)result = pinyin('中毒')print(result)

<class 'list'>[['zhōng'], ['xīn']][['zhòng'], ['dú']]

启用多音字模式

result = pinyin('中央', heteronym=True) print(result)result = pinyin('中毒', heteronym=True) print(result)

[['zhōng', 'zhòng'], ['xīn']][['zhòng'], ['dú']]

设置拼音风格

from pypinyin import pinyin, Styleresult = pinyin('中央', style=Style.INITIALS) # 声母风格print(result)result = pinyin('中央', style=Style.FIRST_LETTER) # 首字母风格print(result)result = pinyin('中央', style=5) # 韵母风格print(result)

[['zh'], ['x']][['z'], ['x']][['ong'], ['in']]

v_to_u

# 利用 ü 代替原来的 vresult = pinyin('计策', v_to_u=True, style=Style.NORMAL)print(result)result = pinyin('计策', v_to_u=False, style=Style.NORMAL)print(result)

[['zhan'], ['lüe']][['zhan'], ['lve']]

neutral_tone_with_five

# 音调风格下是否用5表示轻声result = pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=True)print(result)result = pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=False)print(result)

[['yi1'], ['shang5']][['yi1'], ['shang']]

处理不包含拼音的字符

根据errors 参数的值做相应的处理即可。

# default (默认行为): 不做任何处理,原样返回:result = pinyin('中央center')print(result)

[['zhōng'], ['xīn'], ['center']]

# ignore : 忽略该字符result = pinyin('中央center', errors='ignore')print(result)

[['zhōng'], ['xīn']]

# replace : 更换为去掉 \u 的 unicode 编码:result = pinyin('中央center', errors='replace')print(result)

[['zhōng'], ['xīn'], ['63656e746572']]

# callable 工具 : 供应一个回调函数,接管无拼音字符(串)作为参数, 支持的返回值类型: unicode 或 list 或 None 。
result =pinyin('中央center', errors=lambda x: 'other')print(result)

[['zhōng'], ['xīn'], ['other']]

strict参数的影响

strict 参数用于掌握处理声母和韵母时是否严格遵照 《汉语拼音方案》 标准

result = pinyin('迂', style=Style.FINALS_TONE,strict=False)print(result)result = pinyin('迂', style=Style.FINALS_TONE,strict=True)print(result)

[['ū']][['ǖ']]1.2 pypinyin.lazy_pinyin

lazy_pinyin()将汉字转换为拼音,返回不包含多音字结果的拼音列表,与 pinyin()的差异是返回的拼音是个字符串, 并且每个字只包含一个读音。

pypinyin.lazy_pinyin(hans, style=Style.NORMAL, errors=‘default’, strict=True, v_to_u=False, neutral_tone_with_five=False, tone_sandhi=False)

lazy_pinyin与pinyin大部分参数是一样的,除了tone_sandhi。
tone_sandhi表示是否按照音调变调规则对拼音进行处理。

示例

# 把稳返回的是读音字符串from pypinyin import lazy_pinyin, Styleresult = lazy_pinyin('中央') print(result)result = lazy_pinyin('中毒') print(result)

['zhong', 'xin']['zhong', 'du']

# 是否按照音调变调规则对拼音进行处理result = lazy_pinyin('你好', style=Style.TONE2, tone_sandhi=True)print(result)result = lazy_pinyin('你好', style=Style.TONE2, tone_sandhi=False)print(result)

['ni2', 'ha3o']['ni3', 'ha3o']1.3 load_single_dict和load_phrases_dict

pypinyin.load_single_dict用于载入用户自定义的单字拼音库。

pypinyin.load_single_dict(pinyin_dict, style=‘default’)

pypinyin.load_single_dict的参数先容如下:

pinyin_dict (dict) – 单字拼音库。
比如: {0x963F: u"ā,ē"}style – pinyin_dict 参数值的拼音库风格. 支持 ‘default’, ‘tone2’

pypinyin.load_phrases_dict用于载入用户自定义的词语拼音库。

pypinyin.load_phrases_dict(phrases_dict, style=‘default’)

pypinyin.load_phrases_dict的参数先容如下:

phrases_dict (dict) – 词语拼音库。
比如: {u"阿爸": [[u"ā"], [u"bà"]]}style – phrases_dict 参数值的拼音库风格. 支持 ‘default’, ‘tone2’

详细函数和参数利用如下:

增加单字

from pypinyin import lazy_pinyin, load_phrases_dict, Style, load_single_dicthans = '还没'result = lazy_pinyin(hans, style=Style.TONE3)print(result)load_single_dict({ord('还'): 'huán, hái'}) # 调度 "还" 字的拼音顺序或覆盖默认拼音result = lazy_pinyin('还没', style=Style.TONE3)print(result)

['hai2', 'mei2']['huan2', 'mei2']

增加词组

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

['ju2', 'zi']['ju2', 'zi3']

pypinyin-dict

利用​​pypinyin-dict​​项目供应的自定义拼音库可以纠正结果。
但是须要安装该自定义拼音库。

pip install pypinyin-dict

示例

from pypinyin import pinyinresult = pinyin('中央',heteronym=True)print(result)# 利用 phrase-pinyin-data 项目中 cc_cedict.txt 文件中的拼音数据优化结果from pypinyin_dict.phrase_pinyin_data import cc_cedictcc_cedict.load()result = pinyin('中央',heteronym=True)print(result)

[['zhōng', 'zhòng'], ['xīn']][['zhōng'], ['xīn']]

from pypinyin import pinyinresult = pinyin('扔', heteronym=True)print(result)# 利用 pinyin-data 项目中 cc_cedict.txt 文件中的拼音数据优化结果from pypinyin_dict.pinyin_data import kxhc1983kxhc1983.load()result = pinyin('扔', heteronym=True)print(result)

[['rēng', 'rèng']][['rēng']]1.4 pypinyin.slug

pypinyin.slug将汉字转换为拼音,然后天生slug字符串。

pypinyin.slug(hans, style=Style.NORMAL, heteronym=False, separator=‘-’, errors=‘default’, strict=True)

pypinyin.slug的参数先容如下:

hans (unicode 字符串或字符串列表) – 汉字字符串( '你好吗' )或列表( ['你好', '吗'] ). 可以利用自己喜好的分词模块对字符串进行分词处理, 只需将经由分词处理的字符串列表传进来就可以了。
style – 指定拼音风格,默认是 NORMAL 风格。
更多拼音风格详见 Styleheteronym – 是否启用多音字separator – 两个拼音间的分隔符/连接符errors – 指定如何处理没有拼音的字符,详情请参考 pinyin()strict – 只获取声母或只获取韵母干系拼音风格的返回结果 是否严格遵照《汉语拼音方案》来处理声母和韵母, 详见 strict 参数的影响返回:slug字符串.

示例

import pypinyinfrom pypinyin import Styleresult = pypinyin.slug('你我他')print(result)print(type(result))result = pypinyin.slug('你我他', separator='|')print(result)result = pypinyin.slug('你我他', style=Style.FIRST_LETTER)print(result)

ni-wo-ta<class 'str'>ni|wo|tan-w-t1.5 pypinyin.style.register

pypinyin.style.register用于注册一个拼音风格实现。
示例注册办法如下:

@register('echo')def echo(pinyin, kwargs): return pinyin# orregister('echo', echo)

详细利用看示例代码理解:

from pypinyin import lazy_pinyinfrom pypinyin.style import register@register('kiss')def kiss(pinyin, kwargs): return ' {0}'.format(pinyin)result = lazy_pinyin('么么')print(result)result = lazy_pinyin('么么', style='kiss')print(result)

['me', 'me'][' me', ' me']2 参考​​python-pinyin​​​​pypinyin文档​​​​pypinyin-dict​​

标签:

相关文章

大数据政审,新时代背景下的智慧选择

随着大数据技术的不断发展,各行各业都在积极拥抱这一新兴技术,政治审查领域也不例外。大数据政审作为一种新型的政审手段,在新时代背景下...

PHP教程 2024-12-16 阅读0 评论0

大数据时代,万门引领智慧教育新潮流

随着信息技术的飞速发展,大数据时代已经来临。在这个时代背景下,教育行业也迎来了前所未有的变革。万门大数据应运而生,以其先进的技术和...

PHP教程 2024-12-16 阅读0 评论0

大数据时代,人潮涌动的智慧之海

随着互联网的飞速发展,大数据已经成为当今社会不可或缺的一部分。从社交媒体到电子商务,从城市管理到医疗健康,大数据的应用无处不在。在...

PHP教程 2024-12-16 阅读0 评论0