python 批量将中文名转换为拼音
作者:刘早起 发布时间:2023-06-14 21:16:22
标签:python,中文,拼音,转换
有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三种Python实现的方法,最后给一个批量操作的代码案例!
一、xpinyin
开门见山,Python中文字转拼音可以使用xpinyin,直接使用pip安装即可?
pip install xpinyin -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
接着导入xpinyin下的 Pinyin 方法如下
from xpinyin import Pinyin
首先试试中文名转拼音,
p = Pinyin()
result1 = p.get_pinyin('叶伏天')
result1
结果如下:
'ye-fu-tian'
tone_marks
可以显示声调
result2 = p.get_pinyin('叶伏天', tone_marks='marks')
结果如下:
'yè-fú-tiān'
去掉空格?
s = result1.split('-')
result3 = s[0].capitalize() + ' ' + ''.join(s[1:]).capitalize()
result3
结果如下:
'Ye Futian'
有时需要中文名转拼音首字母,也很简单?
二、pypinyin
另一种方法是使用pypinyin,安装同样可以使用pip
# 安装
pip install pypinyin -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
直接导入就行?
import pypinyin
再来看看中文名转拼音的实现办法
result1 = pypinyin.pinyin('叶庭云', style=pypinyin.NORMAL)
result1
结果如下:
[['ye'], ['ting'], ['yun']]
启用多音节来实现声调
result2 = pypinyin.pinyin('叶庭云', heteronym=True)
result2
结果如下:
[['yè', 'xié'], ['tíng'], ['yún']]
因为返回的是一个嵌套的list,所以需要简单调整一下
result_ = [i[0] for i in result1]
result3 = result_[0].capitalize() + ' ' + ''.join(result_[1:]).capitalize()
result3
结果如下:
'Ye Tingyun'
启用多音字模式时,竟然发现 ‘叶' 也是多音字,查询了资料发现确实是这样,涨知识啦!
下面是中文名转拼音首字母的方法
三、snownlp
最后一种办法是使用snownlp,同样的pip安装与导入如下:
# 安装
pip install snownlp -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
# 导入
from snownlp import SnowNLP
中文名转拼音?
s = SnowNLP('叶庭云')
s.pinyin
结果如下:
['ye', 'ting', 'yun']
将list转为字符串
result4 = s.pinyin[0].capitalize() + ' ' + ''.join(s.pinyin[1:]).capitalize()
result4
结果如下:
'Ye Tingyun'
最后是中文名转拼音首字母
四、批量将中文名转换成拼音
现在,掌握了基本使用后,我们就能利用批量操作来解放双手
import pypinyin
import pandas as pd
df = pd.read_excel('学生名单_test.xls')
df.head()
先导入一份学生名单如下
下面是使用pypinyin批量将全部学生的中文姓名转换为拼音
pinyin_name = []
first_pinyin = []
for i in df['姓名']:
result = pypinyin.pinyin(i, style=pypinyin.NORMAL)
result_ = [i[0] for i in result]
result2 = result_[0].capitalize() + ' ' + ''.join(result_[1:]).capitalize()
result3 = ''.join([i[0].upper() for i in result_])
print(result2, i, sep=' ')
pinyin_name.append(result2)
first_pinyin.append(result3)
df['英文名'] = pinyin_name
df['拼音首字母'] = first_pinyin
df.head()
或者是转换为拼音首字母,运行结果如下:
来源:https://cloud.tencent.com/developer/article/1756968
0
投稿
猜你喜欢
- Usuage: go run kNN.go --file="data.txt"关键是向量点的选择和阈值的判定
- <%@ Language=VBScript %><%Option Explicit %><%Dim strUR
- 一. 建库,建表,加约束. 1.1建库 代码如下:use master go if exists (select * from sysdat
- PHP ini_set用来设置php.ini的值,在函数执行的时候生效,脚本结束后,设置失效。无需打开php.ini文件,就能修改配置,对于
- (下面的代码原来我想用折叠的代码的,但是在google里面老是添加不了折叠的代码,所以就整屏的贴出来了,望大家不要见外。) 朋友的比较好的存
- 很多朋友都有过制作网页的经历,如今,众多网页的设计都用到了表格。这样不仅有利于网页的维护,同时,提高了网页的观赏性。在众多网页制作风格中,细
- location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.hre
- 方案5 使用xml参数 对sql server xml类型参数不熟悉的童鞋需要先了解下XQuery概念,这里简单提下XQuery 是用来从
- 经过摸索和实践,我把自己的解决方法,写在下面: 说明: 我的Oracle客户端的版本是 oracle 9i, 安装client端的时候,不能
- 一、简介 多线程编程技术可以实现代码并行性,优化处理能力,同时功能的
- 首先来看,ASP读取ACCESS数据库。代码如下:<% @language="VBScript"&nbs
- 自从2005年8月11日阿里巴巴宣布收购雅虎中国的全部资产后,做为阿里巴巴集团的创始人马云心里盘算的事应该是如何把雅虎中虎整合进阿里巴巴这个
- 阅读之前:在看文章具体内容之前,希望你可以 先打开IE8,打开http://www.taobao.com,然后在地址栏里输入:javascr
- 问题:在安装SP4补丁的时候,老是报验证密码错误。上网查了一下资料,发现是一个小bug。按照一下操作,安装正常。SQL Server补丁安装
- 一、object类的源码class object: """ The most bas
- 由于Oracle自身比较复杂,在Linux环境下安装要涉及很多方面的因素。本文分两个方面介绍在Linux RedHat 6.0环境下Orac
- 导读:这篇论坛文章主要介绍了使用SQL Server升级顾问的具体步骤,详细内容请参考下文。微软提供了SQL Server 2008升级顾问
- 在html 5增加了新元素header、footer,测试过发现IE不能解析html 5新增的元素。代码如下:<!DOCTYPE ht
- 对于map()它的原型是:map(function,sequence),就是对序列sequence中每个元素都执行函数function操作。
- '创建DOM对象set objDom=server.CreateObject("MicroSoft.XMLDom"