当前位置: 首页 > 工具软件 > pinyin.py > 使用案例 >

python中文意思k-【Python】 汉字转化汉语拼音pinyin

宿衡虑
2023-12-01

pinyin

pinyin模块是github上一个小项目,在github.com/cleverdeng/pinyin.py上面可以下到源码。衷心感谢那些为这个模块做出贡献的人来方便我们【鞠躬】

安装:

下载获得github上的包之后,解压,在cmd下将工作目录切换到解压出来的文件夹里。#python setup.py build,之后就装好了

我记得在我第一次用这个模块之前,我参考了某位前辈的工作,稍微改了一下pinyin的源码,那篇文章已经找不到了T-T。谢过那位前辈

源码第一处改动:改动class PinYin下的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())returnresult#########把它改成这样##################

def hanzi2pinyin(self, string=""):

result=[]if notisinstance(string, unicode):

string= string.decode("utf-8")for char instring:

key= '%X' %ord(char)if not self.word_dict.get(key): #加一条判断,当碰到非汉字的时候原字符保留

result.append(char)else:

result.append(self.word_dict.get(key, char).split()[0][:-1].lower())return result

第二处改动:class PinYin 下的 hanzi2pinyin_split方法:

############原来函数是这样的###########

def hanzi2pinyin_split(self, string="", split=""):

result= self.hanzi2pinyin(string=string)if split == "":returnresultelse:returnsplit.join(result)###########改过之后的函数############

def hanzi2pinyin_split(self, string="", split=""):

result= self.hanzi2pinyin(string=string)#if split == "": #注释掉这三句,功能是这个函数的split参数为空串的时候也返回一个连在一起的字符串而不是一个列表

#return result

#else:

return split.join(result)

*pinyin把汉字转拼音的原理是从一个外部文件,找到相关汉字的拼音表示然后替换原文。这个外部文件在PinYin初始化时由变量的dict_file指定。需要注意的是原文没有写绝对路径,也就是说默认word.data文件是放在和pinyin.py同一个目录下的。可以自己根据需要修改

用法:

importpinyin

pinyinTransfer=pinyin.PinYin()

pinyinTransfer.load_word()print pinyinTransfer.hanzi2pinyin("一段中文内容")>>>yiduanzhongwenneirongprint pinyinTransfer.hanzi2pingyin("一段中文内容",split="|")>>> yi|duan|zhong|wen|nei|rong

 类似资料: