python 把汉字转化为拼音-Python汉字转换成拼音
最近在使用Python做项目时,需要将汉字转化成对应的拼音.在Github上找到了一个现成的程序.
使用实例如下:
from pinyin importPinYin
test=PinYin()
test.load_word()print test.hanzi2pinyin(string="钓鱼岛是中国的")print test.hanzi2pinyin_split(string="钓鱼岛是中国的", split="-")
输出:
["diao", "yu", "dao", "shi", "zhong", "guo", "de"]"diao-yu-dao-shi-zhong-guo-de"
其中hanzi2pinyin函数返回值是一个列表,而hanzi2pinyin_split函数在split参数为空时返回列表,不为空是返回字符串.
但程序存在两个问题,第一是当中文中夹带英文时,英文会丢失.第二则是hanzi2pinyin_split的返回值一会是列表,一会是字符串,让人比较迷糊.
例如:
test.hanzi2pinyin_split(string="钓鱼岛是中国的code123", split="")
我们期待的结果是:
u"diaoyudaoshizhongguodecode123"
但实际结果为:
u"diaoyudaoshizhongguode"
为此,在原来的程序中做了如下改写.
1.hanzi2pinyin函数修改
原来的hanzi2pinyin函数:
def hanzi2pinyin(self, string=""):
result=[]if notisinstance(string, unicode):
string= string.decode("utf-8")for char instring:
key= "%X" %ord(char)
result.append(self.word_dict.get(key, char).split()[0][:-1].lower())return result
修改后的hanzi2pinyin函数:
def hanzi2pinyin(self, string=""):
result=[]if notisinstance(string, unicode):
string= string.decode("utf-8")for char instring:
key= "%X" %ord(char)if notself.word_dict.get(key):
result.append(char)else:
result.append(self.word_dict.get(key, char).split()[0][:-1].lower())return result
修改后的hanzi2pinyin函数可以避免中英文混合的情况下,英文丢失.
2.hanzi2pinyin_split函数修改,将返回值为统一为字符串
原来的hanzi2pinyin_split函数:
def hanzi2pinyin_split(self, string="", split=""):
result= self.hanzi2pinyin(string=string)if split == "":returnresultelse:return split.join(result)
修改后的hanzi2pinyin_split函数(不论split参数是否为空,hanzi2pinyin_split均返回字符串):
def hanzi2pinyin_split(self, string="", split=""):
result= self.hanzi2pinyin(string=string)#if split == "":
#return result
#else:
return split.join(result)
python 把汉字转化为拼音-Python汉字转换成拼音相关推荐
- 汉字转拼音 python_python把汉字转换成拼音实现程序
python把汉字转换成拼音实现程序 文章一个简洁干的汉字转拼音 程序,复制下载就可以直接使用,有需要的同学可以参考一下下. #coding:utf-8 #基于python2.6 table = 'a ...
- 把汉字转换成拼音的util
package com.duanlian.daimengmusic.utils;/*** 汉字转化为拼音*/public class Cn2Spell {private static int[] py ...
- java把汉字转换成拼音的2种方式
java程序将汉字转成拼音的两种方法 1.使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 Java代码 import net.sourceforge.pinyin4j.Pin ...
- 几个将汉字转换成拼音的在线工具
编程时,经常遇到由于汉字兼容性差带来的困扰.解决的方法之一就是使用汉语拼音来代替汉字,(使用英语翻译比较费时).将汉语转换成拼音的方法有很多,可以通过编程实现,比如借助于pinyin package, ...
- C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
汉字转拼音貌似一直是C#开发的一个难题,无论什么方案都有一定的bug,之前使用了两种方案. 1.Chinese2Spell.cs 一些不能识别的汉字全部转为Z 2.Microsoft Visual S ...
- VB 汉字字符串转换成拼音
以下这个函数可以将一个汉字字符串转换成拼音 Private Function Getpy(Txt) Dim d, TmpTxt Dim wzcode, i, TmpWZ, a, b, ii Set d ...
- hive 转拼音udf_自定义UDF函数:将汉字转换成拼音
工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...
- php_excel表中_如何自动将多行中文转换成拼音,Excel2007怎么批量将汉字转换为拼音...
excel中录入的姓名全是中文,但是要发给老外,所以要改成拼音显示的,怎么批量转换呢?其实方法很简单Excel中自带转换功能,下面就跟学习啦小编一起看看excel2007批量将汉字转换成拼音的方法. ...
- C#下汉字转换成拼音
因为一个开发需求需要把汉字转换成拼音,没想到还真的可以! 找了一个类,是别人整理的,默认情况下第一个字母是大写的.我这边需要都是小写的,可以按照自己情况进行实际的需求进行修改,比如有些时候只要首字母就 ...
- 自定义UDF函数:将汉字转换成拼音
工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...
最新文章
- 二值logit模型的适用条件_一文读懂条件Logistic回归
- RTX51 tiny系统要注意的问题:(关于时间片)
- 用html写消费记录页面,支付流水记录.html
- matlab cep,【CEP】重构和改进HelloInsightObservable
- JAVA WEB开发环境搭建教程
- html为什么要进行表单验证_化学锚栓为什么要进行拉拔试验?
- 指针和引用的区别和联系
- 百度网盘直接解析高速下载文件源码
- 漏洞挖掘利器-Fuzz技术介绍
- 达观杯文本智能处理(2)
- bushound的使用和UVC协议的应用开发
- 广东取消英语和计算机考试,广东停考全国英语等级考试、全国计算机等级考试...
- 计算机本地连接xp,xp系统本地连接不见了的解决方法
- 微信v3数据或者v4数据转wxid
- 'Project Name' was compiled with optimization - stepping may behave oddly
- 微信小程序实战--仿知识星球(一)
- 快速破解专业操盘手核心机密(全套)
- 微信公众号开发(4)-实现PC扫码登录
- EBS: Inventory 模块的两个 package: INV_TXN_MANAGER_PUB INV_LPN_TRX_PUB
- 超详细 企业微信推送每日天气或课表(所有东西都可推送)