本文记录使用 Python pypinyin 库获取中文声调拼音的方法。
将汉字转为拼音。可以用于汉字注音、排序、检索 。
1 | pip install pypinyin |
---|
12 | import pypinyinfrom pypinyin import pinyin |
---|
向 pinyin
方法输入中文字符,可以自动识别多音字音调。
1234 | pinyin('他办事从不草率,效率一向很高')-->['tā', 'bàn', 'shì', 'cóng', 'bù', 'cǎo', 'shuài', ',', 'xiào', 'lǜ', 'yí', 'xiàng', 'hěn', 'gāo'] |
---|
在 pinyin
方法中加入参数 heteronym=True
识别多音字
1234 | pinyin('冯',heteronym=True)-->['féng', 'píng'] |
---|
lazy_pinyin
方法可以直接输出一维列表
1234 | pypinyin.lazy_pinyin('我收集的材料散失了,散文没法写了')-->'wo', 'shou', 'ji', 'de', 'cai', 'liao', 'san', 'shi', 'le', ',', 'san', 'wen', 'mei', 'fa', 'xie', 'le' |
---|
可以通过 style
参数控制输出拼音格式,常用的风格有下面这14种。
1234567891011121314151617181920212223242526272829303132333435363738394041 | #: 普通风格,不带声调。如: 中国 -> |
---|
示例:
1234 | pinyin('我收集的材料散失了,散文没法写了', style=pypinyin.STYLE_TONE3)-->['wo3', 'shou1', 'ji2', 'de', 'cai2', 'liao4', 'san4', 'shi1', 'le', ',', 'san3', 'wen2', 'mei2', 'fa3', 'xie3', 'le'] |
---|
轻音默认不做声调标识,如果需要额外标注轻音为5,需要加入参数 neutral_tone_with_five=True
:
1234 | lazy_pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=True)-->'yi1', 'shang5' |
---|
如果对拼音返回的结果不满意可以自定义词语明确拼音内容,例如:
1234 | print(pypinyin.pinyin('又见苍岚'))-->['yòu', 'jiàn', 'cāng', 'lán'] |
---|
我想改 见
这个子的拼音,我就自定义一个字典,用 load_phrases_dict
方法加载进去:
12 | personalized_dict = {'又见苍岚': ['yòu', 'xiàn', 'cāng', 'lán']}pypinyin.load_phrases_dict(personalized_dict) |
---|
再次输出该词语的拼音就改过来了:
1234 | print(pypinyin.pinyin('又见苍岚'))-->['yòu', 'xiàn', 'cāng', 'lán'] |
---|
可以自动处理标点符号和中英文编码:
1234 | pypinyin.lazy_pinyin("我觉得OK!")) -->'wo', 'jue', 'de', 'OK!' |
---|