Skip to main content

汉语拼音转换工具.

Project description

Build Coverage PyPI version PyPI downloads

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

基于 hotoo/pinyin 开发。

特性

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

  • 支持多音字。

  • 简单的繁体支持。

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

安装

$ pip install pypinyin

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

使用示例

>>> 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.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.6.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for pypinyin-0.6.0.tar.gz
Algorithm Hash digest
SHA256 beb00202c476fdaa945f47e8f966e478bee6c965184138ff71583e888ea38986
MD5 5c4822fbbb0f2e2d3a14582612914910
BLAKE2b-256 5aa00039e397b24c3e34c5463953d4bc7657bbc13f1e9623f676a7a8a3db5336

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypinyin-0.6.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7a5f75d8918bad556010e5f2a5b398ef2819cbd65add6590d319380dec8928be
MD5 31d0bacb513dbd177674e2067c380ffa
BLAKE2b-256 22f0a5c10ca346030e22983169dcd600056580593e6cd2abe924a58768b447ac

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