超详细——python把中文汉字转成拼音xpinyin,pypinyin,snownlp三种方法

用python把中文汉字转成拼音本章共记录了三个第三方库: xpinyin,pypinyin,snownlp1.xpinyin1.1安装方法①直接使用在终端使用 pip install xpinyin②使用镜像:pip install xpinyin -i http://pypi.douban.com/simple(豆瓣)...
摘要由CSDN通过智能技术生成

用python把中文汉字转成拼音本章共记录了三个第三方库: xpinyin,pypinyin,snownlp

1.xpinyin

1.1安装方法
①直接使用在终端使用 pip install xpinyin
②使用镜像: https://editor.csdn.net/md/?articleId=112723320
1.2.使用

#先导入
from xpinyin import Pinyin 

#简单使用一下
from xpinyin import Pinyin
p = Pinyin() 
result = p.get_pinyin('小琳爱分享')  #此处结果:xiao-lin-ai-fen-xiang
result = p.get_pinyin('小琳爱分享','') #此处结果:xiaolinaifenxiang
result = p.get_pinyin('小琳爱分享',' ') #此处结果:xiao lin ai fen xiang
print(result) #结果:xiao-lin-ai-fen-xiang

还有两种显示音调不同的方法,用的是tone_marks属性

from xpinyin import Pinyin
p = Pinyin()
result = p.get_pinyin('小琳爱分享',tone_marks='marks')
print(result)
#结果:xiǎo-lín-ài-fēn-xiǎng
#就会在指定拼音上显示音调

from xpinyin import Pinyin
p = Pinyin()
result = p.get_pinyin('小琳爱分享',tone_marks='numbers')
print(result)
#结果:xiao3-lin2-ai4-fen1-xiang3
#就会在每个拼音后面显示音调

附加小功能:
1.首字母大写

from xpinyin import Pinyin
p = Pinyin()
result = p.get_pinyin('小琳爱分享')
print(result) #此处结果:xiao-lin-ai-fen-xiang
s = result.split('-')
print(s) #此处结果: ['xiao', 'lin', 'ai', 'fen', 'xiang']
result1 = s[0].capitalize() + ' ' + ''.join(s[1:]).capitalize() #适用于名字
print(result1) 结果:Xiao Linaifenxiang
# .capitalize可以把字母的首字符大写


#下面这段代码把每一个字的首字母都大写,然后相连接
from xpinyin import Pinyin
p = Pinyin()
result = p.get_pinyin('小琳爱分享')
s = result.split('-')
print(s)
result1 = ''
for i in range(0,len(s)):
    result1 = result1+s[i].capitalize()
print(result1) #结果:XiaoLinAiFenXiang

2.取首字母

#使用p.get_initial()或者p.get_initials()
from xpinyin import Pinyin
p = Pinyin()
result = p.get_initial('海') #get_initial只能对一个字 结果:H
result = p.get_initials('大海')#get_initials可以对两个字 结果:D-H
result = p.get_initials("大海", '') #结果:DH
result = p.get_initials("大海", ' ') #结果: D H
print(result)

或者
import pypinyin
word = '小琳爱分享'
result1 = pypinyin.pinyin(word, style=pypinyin.NORMAL)
word_2 = ''.join([i[0][0].upper() for i in result1]) #重点
print(word_2)

2.pypinyin

安装方法如1.1
2.2使用

#属性:
pypinyin.pinyin(hans, style=<Style.TONE:1>, heteronym=False, errors=’default’, strict=True)

1.其中参数hans是(unicode 字符串或字符串列表)-汉字字符串 ( ‘大海’ ) 或列表 ( [‘大’, ‘海’] )
2.参数style是指定拼音风格,默认是TONE风格,带声调。
不带声调: style=pypinyin.NORMAL
风格选择可见:http://www.exceloffice.net/archives/5216
3.heteronym参数表示是否启用多音字识别,Ture打开。

#第二条,第三条可参考
import pypinyin
# 不带声调的(style=pypinyin.NORMAL)
def pinyin(word):
    s = ''
    for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
        s += ''.join(i)
    return s
# 带声调的(默认)
def yinjie(word):
    s = ''
    # heteronym=True开启多音字
    for i in pypinyin.pinyin(word, heteronym=True):
        s = s + ''.join(i) + " "
    return s
if __name__ == "__main__":
    print(pinyin("一二三四五"))
    print(yinjie("六七八九十"))

# style=pypinyin.NORMAL
import pypinyin
word = '小琳爱分享'
result1 = pypinyin.pinyin(word, style=pypinyin.NORMAL)
print(result1) #结果:[['xiao'], ['lin'], ['ai'], ['fen'], ['xiang']]

#heteronym=True
import pypinyin
word = '阿哒'
result1 = pypinyin.pinyin(word, heteronym=True)
print(result1) #结果:[['ā', 'ē', 'ě', 'ǎ', 'à', 'a'], ['dá', 'dā']]

#首字母大写,具体可参考xpinyin
import pypinyin
word = '小琳爱分享'
result1 = pypinyin.pinyin(word, style=pypinyin.NORMAL)
# print(result1)
word_1 = [i[0] for i in result1]
word_2 = word_1[0].capitalize()+' '+''.join(word_1[1:]).capitalize()
print(word_2)

#一些样式
>>> from pypinyin import lazy_pinyin, Style
 >>> import pypinyin
 >>> lazy_pinyin('中心')
 ['zhong', 'xin']
 >>> lazy_pinyin('中心', style=Style.TONE)
 ['zhōng', 'xīn']
 >>> lazy_pinyin('中心', style=Style.FIRST_LETTER)
 ['z', 'x']
 >>> lazy_pinyin('中心', style=Style.TONE2)
 ['zho1ng', 'xi1n']
 >>> lazy_pinyin('中心', style=Style.CYRILLIC)
 ['чжун1', 'синь1']

4.errors参数指定当遇到非汉字字符时如何处理,方式如下:

errors功能
gnore忽略该字符
replace替换为去掉 \u 的 unicode 编码字符串 (‘\u90aa’ => ’90aa’)
default保留原始字符

例子:

#返回二维列表
from pypinyin import * #pinyin, lazy_pinyin, Style
str1="大海"
print(pinyin(str1)) #结果:[['dà'], ['hǎi']]

#返回一维列表
pypinyin.lazy_pinyin(hans, style=<Style.NORMAL: 0>, errors=’default’, strict=True)
#将汉字转换为拼音,返回不包含多音字结果的拼音列表。与pinyin()的区别是返回的拼音是个字符串, 并且每个字只包含一个读音。
from pypinyin import * #pinyin,lazy_pinyin, Style
str1='中心'
list1=lazy_pinyin(str1,Style.NORMAL,True)
print(list1) #结果: [‘zhong’, ‘xin’]

#返回字符串
#如果要直接将返回的拼音连接成字符串,则可以使用
pypinyin.slug(hans, style=<Style.NORMAL: 0>, heteronym=False, separator=-, errors=’default’, strict=True)
#将汉字转换为拼音,然后生成 slug 字符串。其中separator参数指定了连接拼音时用的分隔符。
import pypinyin
str1='中国人'
list1=pypinyin.slug(str1,separator=” “)
print(list1) #结果:zhong guo ren

3.snownlp

# 安装 
pip install snownlp -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 
# 导入 
from snownlp import SnowNLP
s = SnowNLP('小王爱分享')
print(s.pinyin) #结果:['xiao', 'wang', 'ai', 'fen', 'xiang']
#将list转为字符串
result = s.pinyin[0].capitalize() + ' ' + ''.join(s.pinyin[1:]).capitalize() 
print(result) #结果:Xiao Wangaifenxiang
#取首字母
from snownlp import SnowNLP
s = SnowNLP('小王爱分享')
result = ''.join([i[0].upper() for i in s.pinyin])
print(result) #结果:XWAFX
  • 19
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
可以使用两个第三方库来将中文字符翻译成拼音,分别是xpinyinpypinyin。使用xpinyin库,可以按照以下步骤进行操作:首先,需要安装xpinyin库,可以通过命令pip install xpinyin来进行安装。然后,在代码中导入xpinyin库,使用get方法中文字符翻译成拼音。 例如: ``` import xpinyin p = xpinyin.Pinyin() result = p.get_pinyin('你好', ' ') print(result) ``` 这样就可以将中文字符翻译成拼音了。结果将会是"ni hao"。 另外,也可以使用pypinyin库,按照以下步骤进行操作:首先,需要安装pypinyin库,可以通过命令pip install pypinyin来进行安装。然后,在代码中导入pypinyin库,使用lazy_pinyin方法中文字符换成拼音。 例如: ``` from pypinyin import lazy_pinyin result = lazy_pinyin('你好') print(result) ``` 这样就可以将中文字符翻译成拼音了。结果将会是['ni', 'hao']。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [详细——python中文汉字转成拼音xpinyinpypinyinsnownlp三种方法](https://blog.csdn.net/qq_45708377/article/details/112723390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [pinyin:一个简单的python脚本,可基于Mandarin.dat将中文翻译成拼音](https://download.csdn.net/download/weixin_42134878/18461237)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值