Skip to main content

汉语拼音转换工具.

Project description

Build Coverage PyPI version PyPI downloads

将汉语转为拼音。可以用于汉字注音、排序、检索。

基于 hotoo/pinyin 开发。

特性

  • 根据词组智能匹配最正确的拼音。

  • 支持多音字。

  • 简单的繁体支持。

  • 支持多种不同拼音风格。

安装

$ pip install pypinyin

为了更好的处理包含多音字及非中文字符的字符串, 推荐同时安装 jieba 分词模块。

文档

http://pypinyin.rtfd.org

使用示例

>>> from pypinyin import pinyin, lazy_pinyin
>>> import pypinyin
>>> pinyin(u'中心')
[[u'zh\u014dng'], [u'x\u012bn']]
>>> pinyin(u'中心', heteronym=True)  # 启用多音字模式
[[u'zh\u014dng', u'zh\xf2ng'], [u'x\u012bn']]
>>> pinyin(u'中心', style=pypinyin.INITIALS)  # 设置拼音风格
[['zh'], ['x']]
>>> pinyin('中心', style=pypinyin.TONE2, heteronym=True)
[['zho1ng', 'zho4ng'], ['xi1n']]
>>> lazy_pinyin(u'中心')  # 不考虑多音字的情况
['zhong', 'xin']

命令行工具:

$ pypinyin 音乐
yīn yuè
$ pypinyin -h

分词处理

如果安装了 jieba 分词模块,程序会自动调用。

使用其他分词模块:

  1. 安装分词模块,比如 pip install snownlp

  2. 使用经过分词处理的字符串列表作参数:

    >> from pypinyin import lazy_pinyin, TONE2
    >> from snownlp import SnowNLP
    >> hans = u'音乐123'
    >> lazy_pinyin(hans, style=TONE2)
    [u'yi1n', u'le4', u'1', u'2', u'3']
    >> hans_seg = SnowNLP(hans).words  # 分词处理
    >> hans_seg
    [u'\u97f3\u4e50', u'123']
    >> lazy_pinyin(hans_seg, style=TONE2)
    [u'yi1n', u'yue4', u'123']

自定义拼音库

如果对结果不满意,可以通过自定义拼音库的方式修正结果:

安装了 jieba 分词模块并且支持分词的词组

>> from pypinyin import lazy_pinyin, load_phrases_dict, TONE2
>> hans = u'桔子'
>> lazy_pinyin(hans, style=TONE2)
[u'jie2', u'zi3']
>> load_phrases_dict({u'桔子': [[u'jú'], [u'zǐ']]})
>> lazy_pinyin(hans, style=TONE2)
[u'ju2', u'zi3']

未安装 jieba 分词模块 and/or 不支持分词的词组

>> from pypinyin import lazy_pinyin, load_phrases_dict, TONE2, load_single_dict
>> hans = u'还没'
>> lazy_pinyin(hans, style=TONE2)
['hua2n', 'me2i']
>>>  # 第一种自定义词组的方法
>> load_phrases_dict({u'还没': [[u'hái'], [u'méi']]})
>>> lazy_pinyin(u'还没', style=TONE2)})
['hua2n', 'me2i']
>>> lazy_pinyin([u'还没'], style=TONE2)  # 手动指定 "还没" 为一个词组
['ha2i', 'me2i']
>>>  # 第二种自定义词组的方法
>> load_single_dict({ord(u'还'): u'hái,huán'})  # 调整 "还" 字的拼音顺序
>>> lazy_pinyin(u'还没', style=TONE2)
['ha2i', 'me2i']

Changelog

0.7.0 (2015-06-20)

  • 修复 Python 2 下无法使用 from pypinyin import * 的问题

  • 新增支持以下环境变量:

    • PYPINYIN_NO_JIEBA=true: 禁用“自动调用结巴分词模块”

    • PYPINYIN_NO_PHRASES=true: 禁用内置的“词组拼音库”

0.6.0 (2015-06-10)

  • errors 参数支持回调函数(#17):

    def foobar(char):
        return 'a'
    pinyin(u'あ', errors=foobar)

0.5.7 (2015-05-17)

  • 纠正包含 “便宜” 的一些词组的读音

0.5.6 (2015-02-26)

  • fix “苹果” pinyin error. #11

  • 精简 phrases_dict

  • fix 重复 import jieba 的问题

  • 更新文档

0.5.5 (2015-01-27)

  • fix phrases_dict error

0.5.4 (2014-12-26)

  • 修复无法正确处理由分词模块产生的中英文混合词组(比如:B超,维生素C)的问题. #8

0.5.3 (2014-12-07)

  • 更新拼音库

0.5.2 (2014-09-21)

  • 载入拼音库时,改为载入其副本。防止内置的拼音库被破坏

  • 修复 胜败乃兵家常事 的音标问题

0.5.1 (2014-03-09)

  • 新增参数 errors 用来控制如何处理没有拼音的字符:

    • 'default': 保留原始字符

    • 'ignore': 忽略该字符

    • 'replace': 替换为去掉 \u 的 unicode 编码字符串(u'\u90aa' => u'90aa')

    只处理 [^a-zA-Z0-9_] 字符。

0.5.0 (2014-03-01)

  • 使用新的单字拼音库内容和格式

    新的格式:{0x963F: u"ā,ē"}
    旧的格式:{u'啊': u"ā,ē"}

0.4.4 (2014-01-16)

  • 清理命令行命令的输出结果,去除无关信息

  • 修复“ImportError: No module named runner”

0.4.3 (2014-01-10)

  • 修复命令行工具在 Python 3 下的兼容性问题

0.4.2 (2014-01-10)

  • 去除拼音风格前的 STYLE_ 前缀(兼容包含 STYLE_ 前缀的拼音风格)

  • 增加命令行工具,具体用法请见: pypinyin -h

0.4.1 (2014-01-04)

  • 支持自定义拼音库,方便用户修正程序结果

0.4.0 (2014-01-03)

  • jieba 模块改为可选安装,用户可以选择使用自己喜爱的分词模块对汉字进行分词处理

  • 支持 Python 3

0.3.1 (2013-12-24)

  • 增加 lazy_pinyin

    >>> lazy_pinyin(u'中心')
    ['zhong', 'xin']

0.3.0 (2013-09-26)

  • 修复首字母风格无法正确处理只有韵母的汉字

  • 新增三个拼音风格:
    • pypinyin.STYLE_FINALS : 韵母风格1,只返回各个拼音的韵母部分,不带声调。如: ong uo

    • pypinyin.STYLE_FINALS_TONE : 韵母风格2,带声调,声调在韵母第一个字母上。如: ōng uó

    • pypinyin.STYLE_FINALS_TONE2 : 韵母风格2,带声调,声调在各个拼音之后,用数字 [0-4] 进行表示。如: o1ng uo2

0.2.0 (2013-09-22)

  • 完善对中英文混合字符串的支持:

    >> pypinyin.pinyin(u'你好abc')
    [[u'n\u01d0'], [u'h\u01ceo'], [u'abc']]

0.1.0 (2013-09-21)

  • Initial Release

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypinyin-0.7.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

pypinyin-0.7.0-py2.py3-none-any.whl (1.0 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file pypinyin-0.7.0.tar.gz.

File metadata

  • Download URL: pypinyin-0.7.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pypinyin-0.7.0.tar.gz
Algorithm Hash digest
SHA256 923817cf9f2ed8acd815f5576d3832b1857c7e13ac378bf04fd01379a1ceb50c
MD5 0bf9d4dfef77c9304e78ebff4c6d6d9c
BLAKE2b-256 76d5a659292c4c55dd81b38de129795bdb8864ea55456962f292f337edd9d0ec

See more details on using hashes here.

File details

Details for the file pypinyin-0.7.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pypinyin-0.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3791f1684bc5f1464551707b95931be0fc2b333d2d80aacf9fa237af02af1fbd
MD5 44d63c9712271b5fc535a54f0787c537
BLAKE2b-256 39f3b830a175c04fc25869bd3ace836eef6b672767affeffebc9ca17d91cdb1b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page