Python之将汉语转为拼音

Python将汉字转为拼音的第三方库。

一. xpinyin库

1. 安装

pip install xpinyin

2. 使用技巧

语法格式:get_pinyin(chars: str, splitter: str = '-',tone_marks=None, convert: str = 'lower')

解释参数:

  • chars:需要转换为拼音的字符串汉字。不是汉字也可以,但是不会进行转换。
  • splitter:每个拼音间的拼接字符。
  • tone_marks:主要是汉字转换成拼单是否需要带上音节。需要带上音节就加上tone_marks='numbers',还有一种是在拼音的最后返回是第几音节的做法tone_marks='numbers'。如果加上了tone_marks='numbers'这个参数就不需要加tone_marks='numbers'了。
  • convert:拼音转换后是否需要拼音大小写或首字母大写返回。默认值为lower是小写。upper是全大写。capitalize是首字母大写。

注意:该库默认是使用-号进行每个汉字的拼音区分开来的。

a. 简单使用

from xpinyin import Pinyin

# 实例拼音转换对象
p = Pinyin()
# 汉字进行拼音转换
res = p.get_pinyin(u"一切皆往事")
print(res) # yi-qie-jie-wang-shi

b. 以#号进行拼音的拼接

from xpinyin import Pinyin

# 实例拼音转换对象
p = Pinyin()
# 进行拼音转换
res = p.get_pinyin(u"一切皆往事", splitter="#")
print(res) # yi#qie#jie#wang#shi

c. 汉字转拼音后带上音节

如果要转化成带音节的拼音,需要传递参数tone_marks="marks"

from xpinyin import Pinyin

# 实例拼音转换对象
p = Pinyin()
# 进行拼音转换
res = p.get_pinyin(u"一切皆往事", tone_marks='marks')
print(res) # yī-qiē-jiē-wǎng-shì

如果你不想要以-号进行每个拼音间的拼接的话,可以使用splitter这个参数。值为你想要进行每个拼音间拼接的字符。

如我想拼音间拼接的字符是#号,源码如下:

from xpinyin import Pinyin

p = Pinyin()
res = p.get_pinyin(u"一切皆往事", tone_marks='marks', splitter="#")
print(res) # yī#qiē#jiē#wǎng#shì

d. 拼音全大写

from xpinyin import Pinyin

# 实例拼音转换对象
p = Pinyin()
# 进行拼音转换
res = p.get_pinyin(u"一切皆往事", convert='upper')
print(res) # YI-QIE-JIE-WANG-SHI

e. 拼音首字母大写

from xpinyin import Pinyin

# 实例拼音转换对象
p = Pinyin()
# 进行拼音转换
res = p.get_pinyin(u"一切皆往事", convert='capitalize')
print(res) # Yi-Qie-Jie-Wang-Shi

二. pypinyin库

1. 安装

pip install pypinyin

2. 使用技巧

a. 带上音节

import pypinyin

s = pypinyin.pinyin("一切皆往事")
print(s) # [['yī'], ['qiè'], ['jiē'], ['wǎng'], ['shì']]

b. 不带音节

import pypinyin

s = pypinyin.pinyin("一切皆往事", style=pypinyin.NORMAL)
print(s) # [['yi'], ['qie'], ['jie'], ['wang'], ['shi']]
原文地址:https://www.cnblogs.com/zhenzi0322/p/14291372.html