【Python】 汉字转化汉语拼音pinyin
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的更多相关文章
- 利用python将表格中的汉字转化为拼音
缺少包时用pip install 进行安装,例如: pip install xlsxwriter 完成代码如下: #!/usr/bin/python #-*-coding:utf-8-*- #fr ...
- Python汉字转换成拼音
最近在使用Python做项目时,需要将汉字转化成对应的拼音. 网上的一些包大多是python2.x的,使用下面这个包,支持python3.6 xpinyin 0.5.5 >>> fr ...
- 汉字转【pinyin】
引言 github地址:aizuyan/pinyin 无意中看到了overtrue/pinyin这个项目,感觉很有意思,这个项目做了这么一件事情: 将汉字转化为拼音 刚看到这里是不是觉得没什么难度,没 ...
- C# 将汉字转化成拼音
本文来自http://www.cnblogs.com/yazdao/archive/2011/06/04/2072488.html 首先下载Visual Studio International Pa ...
- HTML5 汉字转化为拼音,带读声,穷举多音字
1,没别的,像这种没有规则的转化,我们首先需要一个字典文件,字典文件的完整度,决定了转化的成功率与精确度 2,笔者收集了较为完整的字典文件,已上传到博客园,欢迎补充 => https://b ...
- c#把汉字转化成全拼音函数(全拼)
/// <summary> /// 把汉字转换成拼音(全拼) /// </summary> /// <param name=&q ...
- .NET 拼音汉字转化(全面)
引言 这是一个.NET 用C#语言编写的 拼音转汉字类,考虑到有很多拼音转汉字,但是试用过发现大部分有很多生僻字都没有办法显示.在此分享一个支持绝大多数的较为全面的拼音汉字转化帮助类.不多说,代码附 ...
- HTML实体与网页编码(汉字转化为了html实体) .
http://blog.csdn.net/f438952359/article/details/7481267 HTML实体与网页编码(汉字转化为了html实体) . htmlencodingfunc ...
- js如何将汉字转化为拼音
github地址,上面有封装好的转换工具:https://github.com/sxei/pinyinjs 里面有几个库,根据功能,库的文件大小也不一样,可以根据需求去引入使用. 里面封装好了方法: ...
随机推荐
- 笔记︱范数正则化L0、L1、L2-岭回归&Lasso回归(稀疏与特征工程)
机器学习中的范数规则化之(一)L0.L1与L2范数 博客的学习笔记,对一些要点进行摘录.规则化也有其他名称,比如统计学术中比较多的叫做增加惩罚项:还有现在比较多的正则化. -------------- ...
- Java Web项目(Extjs)报错一
1.Java Web(Extjs)项目报错一 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -no ...
- AJAX跨域问题总结
跨域是什么? 首先说下同源,同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口完全相同.而跨域就是不同源 ! 能够进行跨域的请求 一般a,img,link[rel=stylesheet], ...
- asp.net mvc razor布局页中a标签的href的跳转问题
笔者做了一个文件上传系统,文件上传后,保存在wwwroot目录的file文件夹中,并把该文件的路径保存到数据库中, 如这样的一个路径保存在数据库: file/b775f487-0127-41e0-9d ...
- springMVC web项目 对访问数据库的用户名密码进行加密解密
在使用springMVC开发web项目中,数据库的用户名,密码一般都是配置在.properties文件中 然后在通过.xml配置文件引入.properties的变量,例如 在config.proper ...
- BZOJ第7页养成计划
嗯,用这篇博客当一个目录,方便自己和学弟(妹?)们查阅.不定期更新. BZOJ1600 BZOJ1601 BZOJ1602 BZOJ1603 BZOJ1604 BZOJ1605 ...
- app图标icon大全
http://tool.58pic.com/tubiaobao/index.php?m=Index&a=ui&p=2 很有用,下载没用,直接右键吧.
- 论文笔记(2):Deep Crisp Boundaries: From Boundaries to Higher-level Tasks
---------------------------------------------------------------------------------------------------- ...
- datatable 多字段 排序;
没有找到datatable的排序方面运用案例,根据接口,自己实现 所以记录一二,小伙伴们有更好的方法,欢迎讨论 1.需求图 2.需求 1)默认 未开启 灰色下箭头 2)第一次点击 :启动排序,降序- ...
- PLSQL Developer连接远程数据库的配置
去Oracle的安装目录找到:D:\oracle\NETWORK\ADMIN这个路径下面的tnsnames.ora文件 修改文件: 这个是本地的 ORCL = (DESCRIPTION = (ADDR ...