API¶
拼音风格¶
- class pypinyin.Style(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[源代码]¶
拼音风格
- NORMAL = 0¶
普通风格,不带声调。如: 中国 ->
zhong guo
- TONE = 1¶
标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如: 中国 ->
zhōng guó
- TONE2 = 2¶
声调风格2,即拼音声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 ->
zho1ng guo2
- TONE3 = 8¶
声调风格3,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 ->
zhong1 guo2
- FIRST_LETTER = 4¶
首字母风格,只返回拼音的首字母部分。如: 中国 ->
z g
- FINALS = 5¶
韵母风格,只返回各个拼音的韵母部分,不带声调。如: 中国 ->
ong uo
- FINALS_TONE = 6¶
标准韵母风格,带声调,声调在韵母第一个字母上。如:中国 ->
ōng uó
- FINALS_TONE2 = 7¶
韵母风格2,带声调,声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 ->
o1ng uo2
- FINALS_TONE3 = 9¶
韵母风格3,带声调,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 ->
ong1 uo2
- BOPOMOFO = 10¶
注音风格,带声调,阴平(第一声)不标。如: 中国 ->
ㄓㄨㄥ ㄍㄨㄛˊ
- BOPOMOFO_FIRST = 11¶
注音风格,仅首字母。如: 中国 ->
ㄓ ㄍ
- CYRILLIC = 12¶
汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 ->
чжун1 го2
- CYRILLIC_FIRST = 13¶
汉语拼音与俄语字母对照风格,仅首字母。如: 中国 ->
ч г
- WADEGILES = 14¶
威妥玛拼音/韦氏拼音/威式拼音风格,无声调
核心 API¶
- pypinyin.pinyin(hans, style=Style.TONE, heteronym=False, errors='default', strict=True, v_to_u=False, neutral_tone_with_five=False)[源代码]¶
将汉字转换为拼音,返回汉字的拼音列表。
- 参数:
hans (unicode 字符串或字符串列表) – 汉字字符串(
'你好吗'
)或列表(['你好', '吗']
). 可以使用自己喜爱的分词模块对字符串进行分词处理, 只需将经过分词处理的字符串列表传进来就可以了。errors –
指定如何处理没有拼音的字符。详见 处理不包含拼音的字符
'default'
: 保留原始字符'ignore'
: 忽略该字符'replace'
: 替换为去掉\u
的 unicode 编码字符串 ('\u90aa'
=>'90aa'
)callable 对象: 回调函数之类的可调用对象。
heteronym – 是否启用多音字
strict – 只获取声母或只获取韵母相关拼音风格的返回结果 是否严格遵照《汉语拼音方案》来处理声母和韵母, 详见 strict 参数的影响
v_to_u (bool) – 无声调相关拼音风格下的结果是否使用
ü
代替原来的v
当为 False 时结果中将使用v
表示ü
neutral_tone_with_five (bool) – 声调使用数字表示的相关拼音风格下的结果是否 使用 5 标识轻声
- 返回:
拼音列表
- 返回类型:
list
- 抛出:
AssertionError – 当传入的字符串不是 unicode 字符时会抛出这个异常
Usage:
>>> from pypinyin import pinyin, Style >>> import pypinyin >>> pinyin('中心') [['zhōng'], ['xīn']] >>> pinyin('中心', heteronym=True) # 启用多音字模式 [['zhōng', 'zhòng'], ['xīn']] >>> pinyin('中心', style=Style.FIRST_LETTER) # 设置拼音风格 [['z'], ['x']] >>> pinyin('中心', style=Style.TONE2) [['zho1ng'], ['xi1n']] >>> pinyin('中心', style=Style.CYRILLIC) [['чжун1'], ['синь1']] >>> pinyin('战略', v_to_u=True, style=Style.NORMAL) [['zhan'], ['lüe']] >>> pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=True) [['yi1'], ['shang5']]
- pypinyin.lazy_pinyin(hans, style=Style.NORMAL, errors='default', strict=True, v_to_u=False, neutral_tone_with_five=False, tone_sandhi=False)[源代码]¶
将汉字转换为拼音,返回不包含多音字结果的拼音列表.
与
pinyin()
的区别是返回的拼音是个字符串, 并且每个字只包含一个读音.- 参数:
hans (unicode 字符串或字符串列表) – 汉字字符串(
'你好吗'
)或列表(['你好', '吗']
). 可以使用自己喜爱的分词模块对字符串进行分词处理, 只需将经过分词处理的字符串列表传进来就可以了。errors – 指定如何处理没有拼音的字符,详情请参考
pinyin()
strict – 只获取声母或只获取韵母相关拼音风格的返回结果 是否严格遵照《汉语拼音方案》来处理声母和韵母, 详见 strict 参数的影响
v_to_u (bool) – 无声调相关拼音风格下的结果是否使用
ü
代替原来的v
当为 False 时结果中将使用v
表示ü
neutral_tone_with_five (bool) – 声调使用数字表示的相关拼音风格下的结果是否 使用 5 标识轻声
tone_sandhi (bool) – 是否按照声调 变调规则 对拼音进行处理 (使用预先通过分词库进行过分词后的结果作为
hans
参数的值效果会更好,因为变调效果依赖分词效果)
- 返回:
拼音列表(e.g.
['zhong', 'guo', 'ren']
)- 返回类型:
list
- 抛出:
AssertionError – 当传入的字符串不是 unicode 字符时会抛出这个异常
Usage:
>>> from pypinyin import lazy_pinyin, Style >>> import pypinyin >>> lazy_pinyin('中心') ['zhong', 'xin'] >>> lazy_pinyin('中心', style=Style.TONE) ['zhōng', 'xīn'] >>> lazy_pinyin('中心', style=Style.FIRST_LETTER) ['z', 'x'] >>> lazy_pinyin('中心', style=Style.TONE2) ['zho1ng', 'xi1n'] >>> lazy_pinyin('中心', style=Style.CYRILLIC) ['чжун1', 'синь1'] >>> lazy_pinyin('战略', v_to_u=True) ['zhan', 'lüe'] >>> lazy_pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=True) ['yi1', 'shang5'] >>> lazy_pinyin('你好', style=Style.TONE2, tone_sandhi=True) ['ni2', 'ha3o']
- pypinyin.load_single_dict(pinyin_dict, style='default')[源代码]¶
载入用户自定义的单字拼音库
- 参数:
pinyin_dict (dict) – 单字拼音库。比如:
{0x963F: u"ā,ē"}
style – pinyin_dict 参数值的拼音库风格. 支持 ‘default’, ‘tone2’
- pypinyin.load_phrases_dict(phrases_dict, style='default')[源代码]¶
载入用户自定义的词语拼音库
- 参数:
phrases_dict (dict) – 词语拼音库。比如:
{u"阿爸": [[u"ā"], [u"bà"]]}
style – phrases_dict 参数值的拼音库风格. 支持 ‘default’, ‘tone2’
- pypinyin.slug(hans, style=Style.NORMAL, heteronym=False, separator='-', errors='default', strict=True)[源代码]¶
将汉字转换为拼音,然后生成 slug 字符串.
- 参数:
hans (unicode 字符串或字符串列表) – 汉字字符串(
'你好吗'
)或列表(['你好', '吗']
). 可以使用自己喜爱的分词模块对字符串进行分词处理, 只需将经过分词处理的字符串列表传进来就可以了。heteronym – 是否启用多音字
separator – 两个拼音间的分隔符/连接符
errors – 指定如何处理没有拼音的字符,详情请参考
pinyin()
strict – 只获取声母或只获取韵母相关拼音风格的返回结果 是否严格遵照《汉语拼音方案》来处理声母和韵母, 详见 strict 参数的影响
- 返回:
slug 字符串.
- 抛出:
AssertionError – 当传入的字符串不是 unicode 字符时会抛出这个异常
>>> import pypinyin >>> from pypinyin import Style >>> pypinyin.slug('中国人') 'zhong-guo-ren' >>> pypinyin.slug('中国人', separator=' ') 'zhong guo ren' >>> pypinyin.slug('中国人', style=Style.FIRST_LETTER) 'z-g-r' >>> pypinyin.slug('中国人', style=Style.CYRILLIC) 'чжун1-го2-жэнь2'