0.35.3 (2019-05-11)
- [Bugfixed] 修复鼻音
m̀
无法转换为不含声调结果的问题。 - [Improved] 使用 phrase-pinyin-data v0.10.0 的词语拼音数据。 Fixed #166 #167 #169 #170
- [Improved] Windows CI 增加在 x64 下跑测试 (via #164 Thanks @hanabi1224)
0.35.2 (2019-04-06)
- [Improved] 使用 phrase-pinyin-data v0.9.2 的词语拼音数据。 Fixed #159 #160
- [Improved] 使用 pinyin-data v0.7.0 的拼音数据。
0.35.1 (2019-03-02)
- [Bugfixed] 修复
朝阳
在heteronym=False
时输出了多个音的情况。
0.35.0 (2019-02-24)
- [Improved] 使用 phrase-pinyin-data v0.9.0 的词语拼音数据。 Fixed #154 #149
- [New] 支持
朝阳
这种一个词多个音('朝阳': [['zhāo', 'cháo'], ['yáng']]
)在多音字模式下输出多个音。 Fixed #154
0.34.1 (2018-12-30)
- [Improved] 使用 phrase-pinyin-data v0.8.5 的词语拼音数据。 Fixed #151
0.34.0 (2018-12-08)
[Changed] 当
errors
参数的值是个回调对象并且返回值是个list
时, 会使用这个 list 来 extend 结果 list (via #147 . Thanks @howl-anderson )# 更新前 >>> pinyin('你好☆☆', errors=lambda x: ['star' for _ in x]) [['nǐ'], ['hǎo'], ['star', 'star']] # 更新后 >>> pinyin('你好☆☆', errors=lambda x: ['star' for _ in x]) [['nǐ'], ['hǎo'], ['star'], ['star']]
详见文档: https://pypinyin.readthedocs.io/zh_CN/develop/usage.html#handle-no-pinyin
0.33.2 (2018-11-03)
- [Bugfixed] 修复
strict=True
时韵母相关风格下没有正确处理韵母üan
的问题。
0.33.1 (2018-09-23)
- [Improved] 使用 pinyin-data v0.6.2 的拼音数据。
- [Improved] 使用 phrase-pinyin-data v0.8.4 的词语拼音数据。
0.33.0 (2018-08-05)
- [Bugfixed] 修复命令行程序在
sys.stdin.encoding
为None
时无法正常工作的问题。 - [Improved] 使用 pinyin-data v0.6.1 的拼音数据。
- [Improved] 使用 phrase-pinyin-data v0.8.3 的词语拼音数据。
- Fixed #137
- [Changed] 不再测试 Python 2.6 和 Python 3.3,增加测试 Python 3.7 和 PyPy3 即不保证程序兼容 Python 2.6 和 Python 3.3。
0.32.0 (2018-07-28)
- [Improved] 使用 pinyin-data v0.6.0 的拼音数据。
- [Improved] 使用 phrase-pinyin-data v0.8.2 的词语拼音数据。
0.31.0 (2018-06-10)
- [New] 增加 py.typed 标记文件,支持 PEP 561 (via #130)
- [Changed] 使用 phrase-pinyin-data v0.7.3 的词语拼音数据。
0.30.1 (2018-04-25)
- [Improved] 更新文档和测试。(via 7fa0b87)
- [Improved] 对用户传入的已进行分词处理的数据进行二次分词以便提高准确性。(via #126)
- [Improved] 使用 pinyin-data v0.5.1 的拼音数据。(via #125)
0.30.0 (2018-02-03)
- [New] 支持有拼音的非汉字字符
〇
(via #119)。 - [Changed] 修复之前无意中把
pinyin
函数中的strict
参数的默认值修改为了False
, 现在把strict
参数的默认值恢复为预期的True
(via #121)。关于strict
参数的影响详见文档: strict 参数的影响
0.29.0 (2018-01-14)
0.28.0 (2017-12-08)
- [New] 给代码增加类型注解(via #110)。
0.27.0 (2017-10-28)
0.26.1 (2017-10-25)
- [Improved] 使用 phrase-pinyin-data v0.5.1 的词语拼音数据。fixed #106
0.26.0 (2017-10-12)
- [Changed] 不再自动调用 jieba 分词模块,改为自动调用内置的最大匹配分词模块来分词。 (via #102)
0.25.0 (2017-10-01)
[New] 内置一个最大匹配分词模块,使用内置的词语拼音库来训练这个分词模块, 解决自定义词语库有时可能不生效的问题(因为这个词语在 jieba 等分词模块中不是可用词)。(via #81)
获取拼音或自定义词库后使用:
>>> from pypinyin import pinyin, load_phrases_dict >>> load_phrases_dict({'了局': [['liǎo'], ['jú']]}) >>> pinyin('了局啊') # 使用 jieba 分词 Building prefix dict from the default dictionary ... Dumping model to file cache /var/folders/s6/z9r_07h53pj_d4x7qjszwmbw0000gn/T/jieba.cache Loading model cost 1.175 seconds. Prefix dict has been built succesfully. [['le'], ['jú'], ['a']] >>> from pypinyin.contrib.mmseg import seg, retrain >>> retrain(seg) # 没有使用 load_phrases_dict 时可以不调用这个函数 >>> pinyin(seg.cut('了局啊')) # 使用内置的最大匹配分词 [['liǎo'], ['jú'], ['a']] >>>
单独使用:
>>> 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)) ['你好', ',', '我是', '中国人', ',', '我', '爱', '我的', '祖国'] >>>
0.24.0 (2017-09-17)
0.23.0 (2017-07-09)
- [New] 使用 phrase-pinyin-data v0.5.0 的词语拼音数据。
0.22.0 (2017-06-14)
- [New] 支持 IronPython (via #86). Thanks @LevyLession
0.21.1 (2017-05-29)
- [Bugfixed] 修复在 Python 2 下通过 pip install 安装 wheel 格式的安装包后, 无法正常使用的问题。(Python 2 下没有自动安装依赖包)
0.21.0 (2017-05-14)
[New] 重构各拼音风格实现,支持自定义拼音风格或覆盖已有拼音风格的实现.
from pypinyin.style import register @register('style1') def func(pinyin, **kwargs): # pinyin = xxx # convert to style1 return pinyin def func(pinyin, **kwargs): # pinyin = xxx # convert to style2 return pinyin register('style2', func=func)
0.20.0 (2017-05-13)
[New] 增加
strict
参数来控制处理声母和韵母时是否严格遵循 《汉语拼音方案》 标准。当
strict=True
时根据 《汉语拼音方案》 的如下规则处理声母、在韵母相关风格下还原正确的韵母:- 21 个声母:
b p m f d t n l g k h j q x zh ch sh r z c s
(y, w 不是声母) - i行的韵母,前面没有声母的时候,写成yi(衣),ya(呀),ye(耶),yao(腰),you(忧),yan(烟),yin(因),yang(央),ying(英),yong(雍)。(y 不是声母)
- u行的韵母,前面没有声母的时候,写成wu(乌),wa(蛙),wo(窝),wai(歪),wei(威),wan(弯),wen(温),wang(汪),weng(翁)。(w 不是声母)
- ü行的韵母,前面没有声母的时候,写成yu(迂),yue(约),yuan(冤),yun(晕);ü上两点省略。(韵母相关风格下还原正确的韵母 ü)
- ü行的韵跟声母j,q,x拼的时候,写成ju(居),qu(区),xu(虚),ü上两点也省略; 但是跟声母n,l拼的时候,仍然写成nü(女),lü(吕)。(韵母相关风格下还原正确的韵母 ü)
- iou,uei,uen前面加声母的时候,写成iu,ui,un。例如niu(牛),gui(归),lun(论)。(韵母相关风格下还原正确的韵母 iou,uei,uen)
具体差异可以查看 tests/test_standard.py 中的对比结果测试用例
- 21 个声母:
[Changed] 改为使用 enum 定义拼音风格(兼容旧版本)
0.19.0 (2017-05-05)
[New] 韵母风格下根据 汉语拼音方案 还原原始的
iou
,uei
,uen
韵母。iou,uei,uen前面加声母的时候,写成iu,ui,un。 例如niu(牛),gui(归),lun(论)。即:
- niu 的韵母是 iou
- gui 的韵母是 uei
- lun 的韵母是 uen
[Fixed] 修复韵母相关风格下没有正确处理
wu
的韵母的问题 (比如:无
在FINALS_TONE
风格下的结果是uú
的问题) 。[Fixed] 修复漏了 ǖ -> v1 的转换。
0.18.2 (2017-04-25)
- [Fixed] 使用 phrase-pinyin-data v0.4.1 的词语拼音数据, fixed #72 。
0.18.1 (2017-03-22)
- [Improved] PyPI 上传过程中出了点问题。
0.18.0 (2017-03-22)
- [Changed] 使用 phrase-pinyin-data v0.4.0 的词语拼音数据。
0.17.0 (2017-03-13)
- [Changed] 词语拼音数据改为使用来自 phrase-pinyin-data v0.3.1 的拼音数据。
- [Fixed] 修正
斯事体大
的拼音。
0.16.1 (2017-02-12)
- [Improved] 使用 pinyin-data v0.4.1 的拼音数据. fixed #58
- [Improved] 更新 厦门 的拼音. fixed #59
0.16.0 (2016-11-27)
[New] Added new pinyin styles -
CYRILLIC
(汉语拼音与俄语字母对照表) andCYRILLIC _FIRST
(via #55 thanks @tyrbonit)>>> pypinyin.pinyin('中心', style=pypinyin.CYRILLIC) [['чжун1'], ['синь1']] >>> pypinyin.pinyin('中心', style=pypinyin.CYRILLIC_FIRST) [['ч'], ['с']]
[New] Added Russian translation README (README_ru.rst)
[New] Command-line tool supported the new pinyin styles:
CYRILLIC, CYRILLIC_FIRST
0.15.0 (2016-10-18)
- [Changed] 使用 pinyin-data v0.4.0 的拼音数据
0.14.0 (2016-09-24)
[New] 新增注音
BOPOMOFO
及注音首字母BOPOMOFO_FIRST
风格(via #51 thanks @gumblex @Artoria2e5)>>> pypinyin.pinyin('中心', style=pypinyin.BOPOMOFO) [['ㄓㄨㄥ'], ['ㄒㄧㄣ']] >>> pypinyin.pinyin('中心', style=pypinyin.BOPOMOFO_FIRST) [['ㄓ'], ['ㄒ']]
[New] 新增音调在拼音后的
TONE3
以及FINALS_TONE3
风格(via #51 thanks @gumblex @Artoria2e5 )>>> pypinyin.pinyin('中心', style=pypinyin.TONE3) [['zhong1'], ['xin1']] >>> pypinyin.pinyin('中心', style=pypinyin.FINALS_TONE3) [['ong1'], ['in1']]
[New] 命令行程序支持新增的四个风格:
TONE3, FINALS_TONE3, BOPOMOFO, BOPOMOFO_FIRST
[Bugfixed] 修复 TONE2 中 ü 标轻声的问题(像 侵略 -> qi1n lv0e4),以及去除文档中 0 表示轻声(via #51 thanks @gumblex)
0.13.0 (2016-08-19)
- [Changed] 分离词组库中包含中文逗号的词语(via f097b6a)
- [Changed] 使用 pinyin-data v0.3.0 的拼音数据
0.12.1 (2016-05-11)
- [Bugfixed] 修复一些词语存在拼音粘连在一起的情况. (#41 thanks @jolly-tao )
0.12.0 (2016-03-12)
[Changed] 单个汉字的拼音数据改为使用来自 pinyin-data 的拼音数据。
[New] 命令行程序支持从标准输入读取汉字信息:
$ echo "你好" | pypinyin nǐ hǎo $ pypinyin < hello.txt nǐ hǎo
0.11.1 (2016-02-17)
0.11.0 (2016-01-16)
- [Changed] 分割
__init__.py
为compat.py
,constants.py
,core.py
和utils.py
。 影响:__init__.py
中只保留文档中提到过的 api, 如果使用了不在文档中的 api 则需要调整代码。
0.10.0 (2016-01-02)
- [New] Python 3.3++++ 以上版本默认支持
U++++20000 ~ U++++2FA1F
区间内的汉字(详见 #33)
0.9.5 (2015-12-19)
- [Bugfixed] 修复未正确处理鼻音(详见 汉语拼音 - 维基百科 )的问题(#31 thanks @xulin97 ):
ḿ、ń、ň、ǹ
对应 “呒”、“呣”、“唔”、“嗯”等字。 这些字之前在各种风格下都输出原始的汉字而不是拼音。
0.9.4 (2015-11-27)
- [Improved] 细微调整,主要是更新文档
0.9.3 (2015-11-15)
- [Bugfixed] Fixed Python 3 compatibility was broken.
0.9.2 (2015-11-15)
[New]
load_single_dict
和load_phrases_dict
增加style
参数支持 TONE2 风格的拼音load_single_dict({ord(u'啊'): 'a1'}, style='tone2') load_phrases_dict({u"阿爸": [[u"a1"], [u"ba4"]]}, style='tone2'}
[Improved] Improved docs
0.9.1 (2015-10-17)
- [Bugfixed][Changed] 修复
ju
,qu
,xu
,yu
,yi
和wu
的韵母( #26 ). Thanks @MingStar :ju
,qu
,xu
的韵母应该是v
yi
的韵母是i
wu
的韵母是u
- 从现在开始
y
既不是声母也不是韵母,详见 汉语拼音方案
0.9.0 (2015-09-20)
- [Changed] 将拼音词典库里的国际音标字母替换为 ASCII 字母. Thanks @MingStar :
ɑ -> a
ɡ -> g
0.8.5 (2015-08-23)
- [Bugfixed] 修复 zh, ch, sh, z, c, s 顺序问题导致获取声母有误
0.8.4 (2015-08-23)
- [Changed]
y
,w
也不是声母. (hotoo/pinyin#57):- 以
y
,w
开头的拼音在声母(INITIALS
)模式下将返回['']
- 以
0.8.3 (2015-08-20)
- [Improved] 上传到 PyPI 出了点问题,但是又 没法重新上传 ,只好新增一个版本
0.8.2 (2015-08-20)
0.8.1 (2015-07-04)
- [Bugfixed] 重构内置的分词功能,修复“无法正确处理包含空格的字符串的问题”
0.8.0 (2015-06-27)
[New] 内置简单的分词功能,完善处理没有拼音的字符 (如果不需要处理多音字问题, 现在可以不用安装
jieba
或其他分词模块了):# 之前, 安装了结巴分词模块 lazy_pinyin(u'你好abc☆☆') [u'ni', u'hao', 'a', 'b', 'c', u'\u2606', u'\u2606'] # 现在, 无论是否安装结巴分词模块 lazy_pinyin(u'你好abc☆☆') [u'ni', u'hao', u'abc\u2606\u2606']
- [Changed] 当
errors
参数是回调函数时,函数的参数由单个字符
变更为单个字符或词组
。即: 对于abc
字符串, 之前将调用三次errors
回调函数:func('a') ... func('b') ... func('abc')
现在只调用一次:func('abc')
。 [Changed] 将英文字符也纳入
errors
参数的处理范围:# 之前 lazy_pinyin(u'abc', errors='ignore') [u'abc'] # 现在 lazy_pinyin(u'abc', errors='ignore') []
0.7.0 (2015-06-20)
- [Bugfixed] Python 2 下无法使用
from pypinyin import *
的问题 - [New] 支持以下环境变量:
PYPINYIN_NO_JIEBA=true
: 禁用“自动调用结巴分词模块”PYPINYIN_NO_PHRASES=true
: 禁用内置的“词组拼音库”
0.6.0 (2015-06-10)
[New]
errors
参数支持回调函数(#17):def foobar(char): return u'a' pinyin(u'あ', errors=foobar)
0.5.7 (2015-05-17)
- [Bugfixed] 纠正包含 "便宜" 的一些词组的读音
0.5.6 (2015-02-26)
- [Bugfixed] "苹果" pinyin error. #11
- [Bugfixed] 重复 import jieba 的问题
- [Improved] 精简 phrases_dict
- [Improved] 更新文档
0.5.5 (2015-01-27)
- [Bugfixed] phrases_dict error
0.5.4 (2014-12-26)
- [Bugfixed] 无法正确处理由分词模块产生的中英文混合词组(比如:B超,维生素C)的问题. #8
0.5.3 (2014-12-07)
- [Improved] 更新拼音库
0.5.2 (2014-09-21)
- [Improved] 载入拼音库时,改为载入其副本。防止内置的拼音库被破坏
- [Bugfixed]
胜败乃兵家常事
的音标问题
0.5.1 (2014-03-09)
[New] 参数
errors
用来控制如何处理没有拼音的字符:'default'
: 保留原始字符'ignore'
: 忽略该字符'replace'
: 替换为去掉\u
的 unicode 编码字符串(u'\u90aa'
=>u'90aa'
)
只处理
[^a-zA-Z0-9_]
字符。
0.5.0 (2014-03-01)
[Changed] 使用新的单字拼音库内容和格式
新的格式:{0x963F: u"ā,ē"}
旧的格式:{u'啊': u"ā,ē"}
0.4.4 (2014-01-16)
- [Improved] 清理命令行命令的输出结果,去除无关信息
- [Bugfixed] “ImportError: No module named runner”
0.4.3 (2014-01-10)
- [Bugfixed] 命令行工具在 Python 3 下的兼容性问题
0.4.2 (2014-01-10)
- [Changed] 拼音风格前的
STYLE_
前缀(兼容包含STYLE_
前缀的拼音风格) - [New] 命令行工具,具体用法请见:
pypinyin -h
0.4.1 (2014-01-04)
- [New] 支持自定义拼音库,方便用户修正程序结果(
load_single_dict
,load_phrases_dict
)
0.4.0 (2014-01-03)
- [Changed] 将
jieba
模块改为可选安装,用户可以选择使用自己喜爱的分词模块对汉字进行分词处理 - [New] 支持 Python 3
0.3.1 (2013-12-24)
[New]
lazy_pinyin
>>> lazy_pinyin(u'中心') ['zhong', 'xin']
0.3.0 (2013-09-26)
- [Bugfixed] 首字母风格无法正确处理只有韵母的汉字
- [New] 三个拼音风格:
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)
[Improved] 完善对中英文混合字符串的支持:
>> pypinyin.pinyin(u'你好abc') [[u'n\u01d0'], [u'h\u01ceo'], [u'abc']]
- [New] Initial Release