Python 汉字转拼音
本文参考:
Python中文转拼音代码(支持全拼和首字母缩写)
中文中不可以有“()”
# -*- coding: utf-8 -*-
__version__ = '0.9'
__all__ = ["PinYin"]
import os.path class PinYin(object):
def __init__(self):
self.word_dict = {} def load_word(self, dict_file):
self.dict_file = dict_file
if not os.path.exists(self.dict_file):
raise IOError("NotFoundFile") with file(self.dict_file) as f_obj:
for f_line in f_obj.readlines():
try:
line = f_line.split(' ')
self.word_dict[line[0]] = line[1]
except:
line = f_line.split(' ')
self.word_dict[line[0]] = line[1] def hanzi2pinyin(self, string="", firstcode=False):
result = []
if not isinstance(string, unicode):
string = string.decode("utf-8") for char in string:
key = '%X' % ord(char)
value = self.word_dict.get(key, char)
# print("===================")+value
# print ("str(value).split()===")
# for i in str(value).split():
# print i
if value is not None and len(value)>0: s1=str(value).split()
# print(type(s1))
# print(str(len(s1)))
if s1 is not None and len(s1)>0:
outpinyin = str(value).split()[0][:-1].lower() if not outpinyin:
outpinyin = char
if firstcode:
result.append(outpinyin[0])
else:
result.append(outpinyin)
return result def hanzi2pinyin_split(self, string="", split="", firstcode=False):
"""提取中文的拼音
@param string:要提取的中文
@param split:分隔符
@param firstcode: 提取的是全拼还是首字母?如果为true表示提取首字母,默认为False提取全拼
"""
result = self.hanzi2pinyin(string=string, firstcode=firstcode)
return split.join(result) if __name__ == "__main__":
test = PinYin()
test.load_word('word.data')
string = "Java程序性能优化-让你的Java程序更快更稳定"
print "in: %s" % string
print "out: %s" % str(test.hanzi2pinyin(string=string))
print "out: %s" % test.hanzi2pinyin_split(string=string, split="", firstcode=True)
print "out: %s" % test.hanzi2pinyin_split(string=string, split="", firstcode=False)
使用:
import app.model.explore.util.pinyin as pinyin
pyCvtor = pinyin.PinYin()
path=os.path.dirname(os.getcwd())+'\\util\\word.data'
print(path)
pyCvtor.load_word(path)
目录结构

具体使用:

转换效果:
肉眼及镜下血尿==========ryjjxxn
尿毒症
==========ndz
智力发育迟缓==========zlfych
氮质血症
==========dzxz
空腹血糖及糖耐量试验均正常==========kfxtjtnlsyjzc
血尿==========xn
大量蛋白尿==========dldbn
多尿==========dn
少尿==========sn
贫血氮质血症==========pxdzxz
Python 汉字转拼音的更多相关文章
- Python 汉字转拼音库 pypinyin
一.初衷: 一些开源软件的配置文件中识别区分的部分用英文,那么我们在批量生成配置文件的时候,可以从CMDB导入汉字(idc_name), 然后将它转换成拼音,再或者拼接上IP地址,以便更准确的识别.例 ...
- python汉字转拼音
上代码: #!/usr/bin/env python # -*- coding:utf-8 -*- """ Author:cleverdeng E-mail:clverd ...
- Hanlp汉字转拼音使用python调用详解
1.hanlp简介 HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用.HanLP具备功能完善.性能高效.架构清晰.语料时新.可自定义的 ...
- 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法
前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字 ...
- JS版汉字与拼音互转终极方案,附简单的JS拼音输入法
原文:http://www.cnblogs.com/liuxianan/p/pinyinjs.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多 ...
- 隐马尔科夫模型python实现简单拼音输入法
在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此 ...
- iOS 汉字的拼音
获取汉字的拼音 #import <Foundation/Foundation.h> @interface NSString (Utils) /** * 汉字的拼音 * * @return ...
- JavaScript 汉字与拼音互转终极方案 附JS拼音输入法
转:http://www.codeceo.com/article/javascript-pinyin.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的 ...
- SQL汉字转拼音函数-支持首字母、全拼
SQL汉字转拼音函数-支持首字母.全拼 FROM :http://my.oschina.net/ind/blog/191659 作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 s ...
随机推荐
- Codeforces 196E Opening Portals MST (看题解)
Opening Portals 我们先考虑如果所有点都是特殊点, 那么就是对整个图求个MST. 想在如果不是所有点是特殊点的话, 我们能不能也 转换成求MST的问题呢? 相当于我们把特殊点扣出来, 然 ...
- youDao
2018-09-22Journeys end in lovers' meeting.漂泊止于爱人的相遇. All extremes of feeling are allied with madness ...
- day4 字符串的操作
今天是第四天,一如既往的每天都有不会做的内容,然后还是那种你使劲的绞尽脑汁都想不出来的问题,而且还得是别人提示着,讲着,演示着才能明白的,过后自己还得使劲捉摸才能慢慢吃透.一开始还挺顺利的,还以为自己 ...
- php分词工具scws
分词工具 sphinx 支持php版本5.2.2~6.0因此选用scws 文档地址 http://www.xunsearch.com/scws/docs.php#instscws 简单的demo ...
- 在mybatis中调用存储过程的时候,不能加工语句
select count(0) from ({call pkg_business.P_ZZS_LYFPHJSKJQK ('2018-04')}) 这是错误的.
- Square Destroyer-POJ 1084 (IDA*)
Description The left figure below shows a complete 3*3 grid made with 2*(3*4) (=24) matchsticks. The ...
- 附001.kubectl介绍及使用
一 kubectl介绍 1.1 kubectl概要 kubectl控制Kubernetes集群管理器,使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理应用程序.使用k ...
- antd + node.js + mongoose小总结
最近开发太忙,都没时间更新博客,想通过这篇博客总结一下相关经验,以备后续能用到: 一.antd 1.onChange of undefined问题:可能是页面中表单取了相同的名称,也可能是在遍历时表单 ...
- C# DGVPrinter.cs 打印方法
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> ...
- vscode那些事儿
2015年,微软发布了Visual Studio Code 一.编辑器配置 下面介绍两种方案. 1.设置文件 文件 -> 首选项 -> 设置vscode的字体大小,缩进. { " ...