Python轮子:xpinyin~汉字转拼音利器

原文链接:http://www.juzicode.com/python-module-xpinyin/

xpinyin 是一个轻量级汉字转拼音库,支持带声调、无符号拼音及首字母转换,具备多音字识别和自定义分隔符功能,适用于中文数据处理、排序、检索等场景。

应用场景

  • 中文姓名转拼音录入
  • 生成汉字拼音索引
  • 中文内容模糊搜索
  • 批量处理中文文件名
  • 语音合成预处理
  • 多音字智能识别

安装与导入

pip install xpinyin
# juzicode.com/VX公众号:juzicode
from xpinyin import Pinyin

基本用法

1. 基础拼音转换

将汉字字符串转换为带分隔符的拼音,第2个参数为连字符,如果不输入默认为”-“,如果不希望输出“-”,则可以传入空格。

# juzicode.com/VX公众号:juzicode
from xpinyin import Pinyin
p = Pinyin()
result = p.get_pinyin("桔子代码", "-")
print(result)
result = p.get_pinyin("桔子代码", " ")
print(result)

运行结果:

ju-zi-dai-ma

2. 首字母缩写

提取每个汉字的首字母生成缩写,适用于快速索引创建。

# juzicode.com/VX公众号:juzicode
from xpinyin import Pinyin
p = Pinyin()
result = p.get_initials("北京", "")
print(result)

运行结果:

BJ

3. 带声调输出

显示拼音的声调数字标记,保留汉字发音特征。

# juzicode.com/VX公众号:juzicode
from xpinyin import Pinyin
p = Pinyin()
result = p.get_pinyin("重庆", tone_marks="numbers")
print(result)

运行结果:

chong2-qing4

4. 多音字处理

我们用多音字汉字,看是否可以正常处理:

# juzicode.com/VX公众号:juzicode
from xpinyin import Pinyin
p = Pinyin()
print(p.get_pinyin("银行行长"))
print(p.get_pinyin("人行道"))

运行结果:

yin-xing-xing-zhang
ren-xing-dao

【注意】从运行结果看,多音字的处理并不是很完美

5. 空值处理

转换时遇到非汉字字符,会自动跳过,保证了转换流程的稳定性。

# juzicode.com/VX公众号:juzicode
from xpinyin import Pinyin
p = Pinyin()
print(p.get_pinyin("Python3.10发布"))

运行结果:

Python3.10-fa-bu

总结

xpinyin模块为中文处理提供便捷的拼音转换方案:

  • 支持多种拼音输出格式(带声调/无符号/首字母)
  • 提供灵活的自定义选项(分隔符、拼音库等)

注意事项:

  • 复杂多音字仍需人工校验
  • 生僻字需要扩展拼音库
  • 连续英文数字会保留原样输出

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注