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 not isinstance(string, unicode):
string = string.decode("utf-8") for char in string:
key = '%X' % ord(char)
result.append(self.word_dict.get(key, char).split()[0][:-1].lower())
return result #########把它改成这样##################
def hanzi2pinyin(self, string=""):
result = []
if not isinstance(string, unicode):
string = string.decode("utf-8") for char in string:
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 == "":
return result
else:
return split.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同一个目录下的。可以自己根据需要修改

  用法:

import pinyin

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

【Python】 汉字转化汉语拼音pinyin的更多相关文章

  1. 利用python将表格中的汉字转化为拼音

    缺少包时用pip install 进行安装,例如: pip install xlsxwriter   完成代码如下: #!/usr/bin/python #-*-coding:utf-8-*- #fr ...

  2. Python汉字转换成拼音

    最近在使用Python做项目时,需要将汉字转化成对应的拼音. 网上的一些包大多是python2.x的,使用下面这个包,支持python3.6 xpinyin 0.5.5 >>> fr ...

  3. 汉字转【pinyin】

    引言 github地址:aizuyan/pinyin 无意中看到了overtrue/pinyin这个项目,感觉很有意思,这个项目做了这么一件事情: 将汉字转化为拼音 刚看到这里是不是觉得没什么难度,没 ...

  4. C# 将汉字转化成拼音

    本文来自http://www.cnblogs.com/yazdao/archive/2011/06/04/2072488.html 首先下载Visual Studio International Pa ...

  5. HTML5 汉字转化为拼音,带读声,穷举多音字

    1,没别的,像这种没有规则的转化,我们首先需要一个字典文件,字典文件的完整度,决定了转化的成功率与精确度 2,笔者收集了较为完整的字典文件,已上传到博客园,欢迎补充  =>  https://b ...

  6. c#把汉字转化成全拼音函数(全拼)

    /// <summary>        /// 把汉字转换成拼音(全拼)        /// </summary>        /// <param name=&q ...

  7. .NET 拼音汉字转化(全面)

    引言 这是一个.NET 用C#语言编写的  拼音转汉字类,考虑到有很多拼音转汉字,但是试用过发现大部分有很多生僻字都没有办法显示.在此分享一个支持绝大多数的较为全面的拼音汉字转化帮助类.不多说,代码附 ...

  8. HTML实体与网页编码(汉字转化为了html实体) .

    http://blog.csdn.net/f438952359/article/details/7481267 HTML实体与网页编码(汉字转化为了html实体) . htmlencodingfunc ...

  9. js如何将汉字转化为拼音

    github地址,上面有封装好的转换工具:https://github.com/sxei/pinyinjs 里面有几个库,根据功能,库的文件大小也不一样,可以根据需求去引入使用. 里面封装好了方法: ...

随机推荐

  1. Windows PowerShell漫谈-win7下没有超级终端

    Windows PowerShell是我在研究win7新特性的时候发现的新工具,起初没有对它产生太大的兴趣,只是简单看看了有关它的介绍.简单使用了一下,感觉上它和cmd.exe没有本质区别.对它产生兴 ...

  2. 判断一个jquery对象是否为空

    今天用jquery $获取一个jquery对象.$("#id") 然后用判断这个对象是否存在,id不存在的时候,判断这个是否存在, if($("#id")) 始 ...

  3. freemarker报错之十五

    1.错误描述 六月 04, 2014 11:04:03 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  4. C# 时间格式化大全

    DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21:25        Label2.Text = dt ...

  5. systemd 编写服务管理脚本

    我们运行 linux 服务器的主要目的是通过运行程序提供服务,比如 mysql.web server等.因此管理 linux 服务器主要工作就是配置并管理上面运行的各种服务程序.在 linux 系统中 ...

  6. UniCode 下 CString 转 char* 的方法(转)

    转自:http://blog.csdn.net/neverup_/article/details/5664733 今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写 ...

  7. 为你揭露2018微信公开课pro的12个重点

    为你揭露2018微信公开课pro的12个重点 1月15日,微信公开课Pro版现场,微信又为我们带来了一些重磅消息,小程序依旧是本次微信公开课Pro的绝对重点.小编为大家整理了公开课的12个重点,带大家 ...

  8. 你该怎么选Offer

    原文出处:http://www.360doc.com/content/15/1223/07/1209677_522436084.shtml 记录目的:自勉.分享 摘要 一段时间无数公司.无数投资人蜂拥 ...

  9. BZOJ 5039: [Jsoi2014]序列维护

    5039: [Jsoi2014]序列维护 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 282  Solved: 169[Submit][Status ...

  10. 零基础新手学习Java必须知道的市场行情

    Java如今的市场不如从前,竞争很大,工资非常高,标准非常高,想要胜任一份高薪的工作不是那么容易,只有掌握最新的行情才能更好的了解Java,才能更好的在这个领取发展,让新手小白了解Java市场行情如下 ...