用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

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

  1. 汉字转16进制 php,php中文汉字与16进制编码转换三种方法

    用php实现中文汉字与16进制间的编码转换. 例1, 复制代码 代码示例: //汉字转换为16进制编码 function hexencode($s) { return preg_replace('/( ...

  2. php中文汉字与16进制编码转换三种方法

    本文介绍了php中文汉字与16进制编码转换的方法,php汉字编码转换的几个例子,有需要的朋友参考下. 用php实现中文汉字与16进制间的编码转换. 例1, <?php //汉字转换为16进制编码 ...

  3. python将中文汉字转换成拼音

    使用pinyin模块: pinyin.get()函数基本用法: pinyin.get(原文)可以返回对应的拼音字符(带有音标): pinyin.get('可以enable') kěyǐenable p ...

  4. 【汇编】16进制转换成10进制(三种方法)

    汇编语言程序:16进制转换成10进制(三种方法) 1 ;天水浪客(Gouki Jiang) , 16进制to10进制例题 2007.5.18 2 STACK SEGMENT PARA STACK 3 ...

  5. python读取excel汉字转成拼音_Python语言之用Python将全部中文姓名转为拼音

    本文将介绍三种用Python将中文姓名转换为拼音的方法,Python的实用技巧希望对Python的学习有所帮助. 有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三 ...

  6. python读取excel汉字转成拼音_python 批量将中文名转换为拼音

    有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三种Python实现的方法,最后给一个批量操作的代码案例! 一.xpinyin 开门见山,Python中文字转拼音可 ...

  7. 将中文汉字转换成拼音(全拼)

    using System.Globalization; using System.Text; using System.Text.RegularExpressions;/// <summary& ...

  8. python urllib下载文件怎么停止_python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  9. python如何实现下载文件_python实现下载文件的三种方法

    python实现下载文件的三种方法 Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件. ...

  10. 怎么把Excel转换成PDF格式?这三种方法轻松完成转换

    如何将excel表格转换成PDF格式呢?大家在日常的办公过程中也会经常使用这两种文件格式,对文件的格式转换需求我们也是屡见不鲜,其中就有把excel表格转换成PDF格式的需求,遇到这种情况该怎么转换呢 ...

最新文章

  1. 比特币现金比BTC节能40%以上
  2. mysql常用的视图_MySQL视图
  3. HDU5322 - cdq分治FFT加速dp
  4. mysql 不同服务器不同库之间的访问_不同服务器数据库之间的数据操作
  5. 【Siddhi】DefinitionNotExistException: Stream with stream ID xxx has not been defined
  6. 随想录(cpu缓存、cache同步和乱序执行)
  7. 基于 webdriver 的测试代码日常调试方python 篇
  8. geoserver服务发布矢量地图流程
  9. 基于RFM模型的Kmeans聚类算法实现
  10. url中文转码问题(python)
  11. Grid-based RRP/基于网格的路径重新规划问题
  12. NuttX 任务管理
  13. Android 4.2 Wifi Display核心分析 (一)
  14. 1.面试题目汇总-嵌入式篇
  15. Facenet 原理介绍
  16. 数据结构:二叉树及堆排序
  17. vcs dump vpd的方法
  18. 我想唱歌给你听~~~
  19. vue+echarts GL3d中国地图
  20. Pauling学编程打卡

热门文章

  1. antd tab右键菜单renderTabBar
  2. 杨元庆:税收影响联想电脑国内售价
  3. 光电耦合器简介以及作用
  4. python 换行打印
  5. Windows10系统无法更改默认浏览器等默认设置
  6. Android Camera2 实现连拍
  7. 银耳椰椰——Alpha冲刺Day04
  8. 如何获取瘦人肠道菌群_瘦人想要长胖,调节肠道菌群很重要
  9. 使用 kind 1 分钟启动一个本地 k8s 开发集群
  10. 腾讯 AI Lab招聘算法实习生