• 售前

  • 售后

热门帖子
入门百科

python 批量将中文名转换为拼音

[复制链接]
温润而哲 显示全部楼层 发表于 2021-10-25 19:25:12 |阅读模式 打印 上一主题 下一主题
偶尔在处置惩罚文件时候,我们需要将中文姓名转换为拼音,大概是转换为拼音首字母,本文将先容三种Python实现的方法,末了给一个批量操作的代码案例!
一、xpinyin

开门见山,Python中文字转拼音可以使用xpinyin,直接使用pip安装即可?
  1. pip install xpinyin -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
复制代码
接着导入xpinyin下的 Pinyin 方法如下
  1. from xpinyin import Pinyin
复制代码
首先试试中文名转拼音,
  1. p = Pinyin()
  2. result1 = p.get_pinyin('叶伏天')
  3. result1
复制代码
结果如下:
  1. 'ye-fu-tian'
复制代码
  1. tone_marks
复制代码
可以表现声调
  1. result2 = p.get_pinyin('叶伏天', tone_marks='marks')
复制代码
结果如下:
  1. 'yè-fú-tiān'
复制代码
去掉空格?
  1. s = result1.split('-')
  2. result3 = s[0].capitalize() + ' ' + ''.join(s[1:]).capitalize()
  3. result3
  4. 结果如下:
  5. 'Ye Futian'
复制代码

偶尔需要中文名转拼音首字母,也很简朴?

二、pypinyin

另一种方法是使用pypinyin,安装同样可以使用pip
  1. # 安装
  2. pip install pypinyin -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
复制代码
直接导入就行?
  1. import pypinyin
复制代码
再来看看中文名转拼音的实现办法
  1. result1 = pypinyin.pinyin('叶庭云', style=pypinyin.NORMAL)
  2. result1
复制代码
结果如下:
  1. [['ye'], ['ting'], ['yun']]
复制代码
启用多音节来实现声调
  1. result2 = pypinyin.pinyin('叶庭云', heteronym=True)
  2. result2
复制代码
结果如下:
  1. [['yè', 'xié'], ['tíng'], ['yún']]
复制代码
因为返回的是一个嵌套的list,以是需要简朴调整一下
  1. result_ = [i[0] for i in result1]
  2. result3 = result_[0].capitalize() + ' ' + ''.join(result_[1:]).capitalize()
  3. result3
复制代码
结果如下:
  1. 'Ye Tingyun'
复制代码
启用多音字模式时,竟然发现 ‘叶' 也是多音字,查询了资料发现确实是如许,涨知识啦!


下面是中文名转拼音首字母的方法

三、snownlp

末了一种办法是使用snownlp,同样的pip安装与导入如下:
  1. # 安装
  2. pip install snownlp -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
  3. # 导入
  4. from snownlp import SnowNLP
复制代码
中文名转拼音?
  1. s = SnowNLP('叶庭云')
  2. s.pinyin
复制代码
结果如下:
  1. ['ye', 'ting', 'yun']
复制代码
将list转为字符串
  1. result4 = s.pinyin[0].capitalize() + ' ' + ''.join(s.pinyin[1:]).capitalize()
  2. result4
复制代码
结果如下:
  1. 'Ye Tingyun'
复制代码

末了是中文名转拼音首字母

四、批量将中文名转换成拼音

现在,把握了根本使用后,我们就能使用批量操作来解放双手
  1. import pypinyin
  2. import pandas as pd
  3. df = pd.read_excel('学生名单_test.xls')
  4. df.head()
复制代码
先导入一份学生名单如下

下面是使用pypinyin批量将全部学生的中文姓名转换为拼音
  1. pinyin_name = []
  2. first_pinyin = []
  3. for i in df['姓名']:
  4.   result = pypinyin.pinyin(i, style=pypinyin.NORMAL)
  5.   result_ = [i[0] for i in result]
  6.   result2 = result_[0].capitalize() + ' ' + ''.join(result_[1:]).capitalize()
  7.   result3 = ''.join([i[0].upper() for i in result_])
  8.   print(result2, i, sep=' ')
  9.   pinyin_name.append(result2)
  10.   first_pinyin.append(result3)
  11.   
  12. df['英文名'] = pinyin_name
  13. df['拼音首字母'] = first_pinyin
  14. df.head()
复制代码
大概是转换为拼音首字母,运行结果如下:

以上就是python 批量将中文名转换为拼音的详细内容,更多关于python 中文名转换为拼音的资料请关注脚本之家其它相干文章!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作