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

INITIALS = 3

声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见 #27)。如: 中国 -> zh g

FIRST_LETTER = 4

首字母风格,只返回拼音的首字母部分。如: 中国 -> z g

FINALS = 5

韵母风格,只返回各个拼音的韵母部分,不带声调。如: 中国 -> ong uo

FINALS_TONE = 6

标准韵母风格,带声调,声调在韵母第一个字母上。如:中国 -> ōng

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=True)[源代码]

将汉字转换为拼音.

参数:
  • hans (unicode 字符串或字符串列表) – 汉字字符串( '你好吗' )或列表( ['你好', '吗'] ). 可以使用自己喜爱的分词模块对字符串进行分词处理, 只需将经过分词处理的字符串列表传进来就可以了。
  • style – 指定拼音风格,默认是 TONE 风格。 更多拼音风格详见 Style
  • errors

    指定如何处理没有拼音的字符。详见 处理不包含拼音的字符

    • 'default': 保留原始字符
    • 'ignore': 忽略该字符
    • 'replace': 替换为去掉 \u 的 unicode 编码字符串 ('\u90aa' => '90aa')
    • callable 对象: 回调函数之类的可调用对象。
  • heteronym – 是否启用多音字
  • strict – 是否严格遵照《汉语拼音方案》来处理声母和韵母,详见 strict 参数的影响
返回:

拼音列表

返回类型:

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']]
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

引发:

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']
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: 0>, heteronym=False, separator='-', errors='default', strict=True)[源代码]

生成 slug 字符串.

参数:
  • hans (unicode or list) – 汉字
  • style – 指定拼音风格,默认是 NORMAL 风格。 更多拼音风格详见 Style
  • heteronym – 是否启用多音字
  • separstor – 两个拼音间的分隔符/连接符
  • 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'

风格转换

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))
['你好', ',', '我是', '中国人', ',', '我', '爱',
 '我的', '祖国']
>>>
pypinyin.contrib.mmseg.retrain = <function retrain>[源代码]

重新使用内置词典训练 seg_instance。

比如在增加自定义词语信息后需要调用这个模块重新训练分词器

class pypinyin.contrib.mmseg.Seg(prefix_set)[源代码]

最大正向匹配分词

cut(text)[源代码]

分词

参数:text – 待分词的文本
Yield:单个词语
train(words)[源代码]

训练分词器

参数:words – 词语列表