API¶
拼音风格¶
-
class
pypinyin.
Style
[源代码]¶ 拼音风格
-
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¶ 汉语拼音与俄语字母对照风格,仅首字母。如: 中国 ->
ч г
-
核心 API¶
-
pypinyin.
pinyin
(hans, style=<Style.TONE: 1>, heteronym=False, errors='default', strict=False)[源代码]¶ 将汉字转换为拼音.
参数: - hans (unicode 字符串或字符串列表) – 汉字字符串(
'你好吗'
)或列表(['你好', '吗']
). 可以使用自己喜爱的分词模块对字符串进行分词处理, 只需将经过分词处理的字符串列表传进来就可以了。 - style – 指定拼音风格,默认是
TONE
风格。 更多拼音风格详见Style
- errors –
指定如何处理没有拼音的字符
'default'
: 保留原始字符'ignore'
: 忽略该字符'replace'
: 替换为去掉\u
的 unicode 编码字符串 ('\u90aa'
=>'90aa'
)- callable 对象: 回调函数之类的可调用对象。如果
errors
参数 的值是个可调用对象,那么程序会回调这个函数:func(char)
:def foobar(char): return 'a' pinyin('あ', errors=foobar)
- heteronym – 是否启用多音字
- strict – 是否严格遵照《汉语拼音方案》来处理声母和韵母,详见 strict 参数的影响
返回: 拼音列表
返回类型: list
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']]
- hans (unicode 字符串或字符串列表) – 汉字字符串(
-
pypinyin.
lazy_pinyin
(hans, style=<Style.NORMAL: 0>, errors='default', strict=True)[源代码]¶ 不包含多音字的拼音列表.
与
pinyin()
的区别是返回的拼音是个字符串, 并且每个字只包含一个读音.参数: - hans (unicode or list) – 汉字
- style – 指定拼音风格,默认是
NORMAL
风格。 更多拼音风格详见Style
。 - errors – 指定如何处理没有拼音的字符,详情请参考
pinyin()
- strict – 是否严格遵照《汉语拼音方案》来处理声母和韵母,详见 strict 参数的影响
返回: 拼音列表(e.g.
['zhong', 'guo', 'ren']
)返回类型: list
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']
-
pypinyin.
load_single_dict
(pinyin_dict, style='default')[源代码]¶ 载入用户自定义的单字拼音库
参数: - pinyin_dict (dict) – 单字拼音库。比如:
{0x963F: u"ā,ē"}
- style – pinyin_dict 参数值的拼音库风格. 支持 ‘default’, ‘tone2’
- pinyin_dict (dict) – 单字拼音库。比如:
-
pypinyin.
load_phrases_dict
(phrases_dict, style='default')[源代码]¶ 载入用户自定义的词语拼音库
参数: - phrases_dict (dict) – 词语拼音库。比如:
{u"阿爸": [[u"ā"], [u"bà"]]}
- style – phrases_dict 参数值的拼音库风格. 支持 ‘default’, ‘tone2’
- phrases_dict (dict) – 词语拼音库。比如:
-
pypinyin.
slug
(hans, style=<Style.NORMAL: 0>, heteronym=False, separator='-', errors='default', strict=True)[源代码]¶ 生成 slug 字符串.
参数: - hans (unicode or list) – 汉字
- style – 指定拼音风格,默认是
NORMAL
风格。 更多拼音风格详见Style
- heteronym – 是否启用多音字
- separstor – 两个拼音间的分隔符/连接符
- errors – 指定如何处理没有拼音的字符,详情请参考
pinyin()
- strict – 是否严格遵照《汉语拼音方案》来处理声母和韵母,详见 strict 参数的影响
返回: slug 字符串.
>>> 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'
风格转换¶
-
pypinyin.style.
register
(style, func=None)[源代码]¶ 注册一个拼音风格实现
@register('echo') def echo(pinyin, **kwargs): return pinyin # or register('echo', echo)
-
pypinyin.style.
convert
(pinyin, style, strict, default=None, **kwargs)[源代码]¶ 根据拼音风格把原始拼音转换为不同的格式
参数: - pinyin (unicode) – 原始有声调的单个拼音
- style – 拼音风格
- strict (bool) – 是否严格遵照《汉语拼音方案》来处理声母和韵母,详见 strict 参数的影响
- default – 拼音风格对应的实现不存在时返回的默认值
返回: 按照拼音风格进行处理过后的拼音字符串
返回类型: unicode
分词¶
-
pypinyin.contrib.mmseg.
seg
= <pypinyin.contrib.mmseg.Seg object>¶ 基于内置词库的最大正向匹配分词器。使用:
>>> from pypinyin.contrib.mmseg import seg >>> text = '你好,我是中国人,我爱我的祖国' >>> seg.cut(text) <generator object Seg.cut at 0x10b2df2b0> >>> list(seg.cut(text)) ['你好', ',', '我', '是', '中国人', ',', '我', '爱', '我的', '祖', '国'] >>> seg.train(['祖国', '我是']) >>> list(seg.cut(text)) ['你好', ',', '我是', '中国人', ',', '我', '爱', '我的', '祖国'] >>>