!文章内容如有错误或排版问题,请提交反馈,非常感谢!
在自然语言的处理中语义分析中,除了需要拆解字形外,字音有时也能表示含义。另外,在搭建搜索引擎时在搜索词query分析是也会的用到汉字转拼音或拼音转汉字的场景。
Python已经有很多包支持类似的功能,整理出来供后续使用。
pypinyin
主要有三个方法:
pinyin()
将汉字转换为拼音,返回汉字的拼音列表。
def pinyin(hans, style=Style.TONE, heteronym=False, errors='default', strict=True, v_to_u=False, neutral_tone_with_five=False)
参数说明:
- hans:汉字字符串或列表
- style:指定拼音风格
- NORMAL=0 #:普通风格,不带声调。如:中国->“zhongguo“
- TONE=1 #:标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如:中国->“zhōngguó“
- TONE2=2 #:声调风格2,即拼音声调在各个韵母之后,用数字[1-4]进行表示。如:中国->“zho1ngguo2“
- TONE3=8 #:声调风格3,即拼音声调在各个拼音之后,用数字[1-4]进行表示。如:中国->“zhong1guo2“
- INITIALS=3 #:声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见`#27`_)。如:中国->“zhg“
- FIRST_LETTER=4 #:首字母风格,只返回拼音的首字母部分。如:中国->“zg“
- FINALS=5 #:韵母风格,只返回各个拼音的韵母部分,不带声调。如:中国->“onguo“
- FINALS_TONE=6 #:标准韵母风格,带声调,声调在韵母第一个字母上。如:中国->“ōnguó“
- FINALS_TONE2=7 #:韵母风格2,带声调,声调在各个韵母之后,用数字[1-4]进行表示。如:中国->“o1nguo2“
- FINALS_TONE3=9 #:韵母风格3,带声调,声调在各个拼音之后,用数字[1-4]进行表示。如:中国->“ong1uo2“
- BOPOMOFO=10 #:注音风格,带声调,阴平(第一声)不标。如:中国->“ㄓㄨㄥㄍㄨㄛˊ“
- BOPOMOFO_FIRST=11 #:注音风格,仅首字母。如:中国->“ㄓㄍ“
- CYRILLIC=12 #:汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字[1-4]进行表示。如:中国->“чжун1го2“
- CYRILLIC_FIRST=13 #:汉语拼音与俄语字母对照风格,仅首字母。如:中国->“чг“
- WADEGILES=14 #:威妥玛拼音/韦氏拼音/威式拼音风格,无声调
- heteronym:是否启用多音字
- strict:是否严格遵照《汉语拼音方案》来处理声母和韵母
- v_to_u:无声调相关拼音风格下的结果是否使用“ü“代替原来的“v“
- neutral_tone_with_five:声调使用数字表示的相关拼音风格下的结果是否使用5标识轻声
lazy_pinyin()
将汉字转换为拼音,返回不包含多音字结果的拼音列表
def lazy_pinyin(hans, style=Style.NORMAL, errors='default', strict=True, v_to_u=False, neutral_tone_with_five=False)
参数说明:
- errors:指定如何处理没有拼音的字符
slug()
将汉字转换为拼音,然后生成slug字符串。
def slug(hans, style=Style.NORMAL, heteronym=False, separator='-', errors='default', strict=True)
参数说明:
- separator:两个拼音间的分隔符/连接符
示例代码:
from pypinyin import pinyin, Style print(pinyin('重庆')) #[['chóng'], ['qìng']] print(pinyin('重庆', style=Style.NORMAL)) #[['chong'], ['qing']]
项目地址:https://github.com/mozillazg/python-pinyin
xpinyin
该Python不支持多音字,不推荐使用。示例:
from xpinyin import Pinyin p = Pinyin() print(p.get_pinyin("重庆")) #zhong-qing
项目地址:https://github.com/lxneng/xpinyin
ChineseTone
该包主要功能:
- 支持多音字
- 判断是否为多音字
- 获取拼音的声母部分
- 获取某汉字的所有拼音