拼音转汉字,可以作为拼音输入法的转换引擎,兼容Python 2、Python 3。
Python 2:
$ python setup.py install --user
Python 3:
$ python3 setup.py install --user
下面的示例在Python 3中运行。
原理是viterbi算法。
from Pinyin2Hanzi import DefaultHmmParams from Pinyin2Hanzi import viterbi hmmparams = DefaultHmmParams() ## 2个候选 result = viterbi(hmm_params=hmmparams, observations=('ni', 'zhi', 'bu', 'zhi', 'dao'), path_num = 2) for item in result: print(item.score, item.path) '''输出 1.3155294593897203e-08 ['你', '知', '不', '知', '道'] 3.6677865125992192e-09 ['你', '只', '不', '知', '道'] ''' ## 2个候选,使用对数打分 result = viterbi(hmm_params=hmmparams, observations=('ni', 'zhi', 'bu', 'zhi', 'dao'), path_num = 2, log = True) for item in result: print(item.score, item.path) '''输出 -18.14644152864202 ['你', '知', '不', '知', '道'] -19.423677486918002 ['你', '只', '不', '知', '道'] ''' ## 2个候选,使用对数打分 result = viterbi(hmm_params=hmmparams, observations=('ni', 'zhii', 'bu', 'zhi', 'dao'), path_num = 2, log = True) for item in result: print(item.score, item.path) # 发生KeyError,`zhii`不规范
原理是词库+动态规划。
from Pinyin2Hanzi import DefaultDagParams from Pinyin2Hanzi import dag dagparams = DefaultDagParams() ## 2个候选 result = dag(dagparams, ('ni', 'bu', 'zhi', 'dao', 'de', 'shi'), path_num=2) for item in result: print(item.score, item.path) ''' 输出 0.08117536840088911 ['你不知道', '的是'] 0.04149191639287887 ['你不知道', '的诗'] ''' ## 2个候选,使用对数打分 result = dag(dagparams, ('ni', 'bu', 'zhi', 'dao', 'de', 'shi'), path_num=2, log=True) for item in result: print(item.score, item.path) ''' 输出 -2.5111434226494866 ['你不知道', '的是'] -3.1822566564324477 ['你不知道', '的诗'] ''' ## 1个候选 print( dag(dagparams, ['ti', 'chu', 'le', 'bu', 'cuo', 'de', 'jie', 'jve', 'fang', 'an'], path_num=1) ) '''输出 [< score=0.0017174549839096384, path=['提出了', '不错', '的', '解决方案'] >] ''' ## 2个候选,使用对数打分 result = dag(dagparams, ('ni', 'bu', 'zhi', 'dao', 'de', 'shii'), path_num=2, log=True) print(result) # 输出空列表,因为`shii`不存在
实现AbstractHmmParams, AbstractDagParams这两个接口即可。具体可以参考源码。
给出的拼音必须是“规范”的。例如
略 -> lve
据 -> ju
列举所有“规范”的拼音:
from Pinyin2Hanzi import all_pinyin for py in all_pinyin(): print(py)
将拼音转换为“规范”的拼音:
from Pinyin2Hanzi import simplify_pinyin print(simplify_pinyin('lue')) # 输出:'lve' print(simplify_pinyin('lüè')) # 输出:'lve'
判断是否是“规范”的拼音:
from Pinyin2Hanzi import is_pinyin print(is_pinyin('lue')) # 输出:False print(is_pinyin('lüè')) # 输出:False print(is_pinyin('lvee')) # 输出:False print(is_pinyin('lve')) # 输出:True
本文将讲述怎样利用HMM进行拼音转汉字。 准备阶段 python 2.7; 安装 python 工具包 ChineseTone,直接使用 pip install 安装; 运行程序的过程中,可能还会用到其他工具包,自行使用 pip install 安装即可; 下载拼音转汉字程序,https://github.com/letiantian/Pinyin2Hanzi; 原理讲述 HMM涉及三个问题,拼音
利用Pinyin2Hanzi 可以将拼音转换为汉字,可以作为拼音输入法的转换引擎: 示例: def pinyin_2_hanzi(pinyinList): from Pinyin2Hanzi import DefaultDagParams from Pinyin2Hanzi import dag dagParams = DefaultDagParams() # 1
拼音转汉字 首先导入拼音转汉字的包pinyin_2_hanzi,测试程序如下: def pinyin_2_hanzi(pinyinList): from Pinyin2Hanzi import DefaultDagParams from Pinyin2Hanzi import dag dagParams = DefaultDagParams() result =
实现将汉字转换为拼音的功能。 [Code4App.com]
汉字拼音转换工具,可以用于汉字注音、排序、检索。 注:这个版本同时支持在 Node 和 Web 浏览器环境运行,Python 版请关注 mozillazg/python-pinyin 特性 根据词组智能匹配最正确的拼音。 支持多音字。 简单的繁体支持。 支持多种不同拼音风格。 安装 via npm: npm install pinyin 用法 开发者: var pinyin = require("
本文向大家介绍C#实现汉字转拼音或转拼音首字母的方法,包括了C#实现汉字转拼音或转拼音首字母的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现汉字转拼音或转拼音首字母的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍Python3实现汉语转换为汉语拼音,包括了Python3实现汉语转换为汉语拼音的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python3实现汉语转换为汉语拼音的具体代码,供大家参考,具体内容如下 工具: Python3.6.2,pycharm 1.使用了 第三方模块 pypinyin(点击File->setting...->Project:name(自己的项目名称
本文向大家介绍Java汉字转拼音pinyin4j用法详解,包括了Java汉字转拼音pinyin4j用法详解的使用技巧和注意事项,需要的朋友参考一下 一、工具介绍 pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库; 1. 功能 支持同一汉字有多个发音 还支持拼音的格式化输出,比如第几声之类的, 同时支持简体中文、繁体中文转换为拼音…使用起来也非常简单。下面是其官方网址,其中
本文向大家介绍python实现将汉字转换成汉语拼音的库,包括了python实现将汉字转换成汉语拼音的库的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现将汉字转换成汉语拼音的库。分享给大家供大家参考。具体分析如下: 下面的这个python库可以很容易的将汉字转换成拼音,其中用到了一个word.data 的字典,可点击此处本站下载。 希望本文所述对大家的Python程序设计有所
本文向大家介绍android实现汉字转拼音功能 带多音字识别,包括了android实现汉字转拼音功能 带多音字识别的使用技巧和注意事项,需要的朋友参考一下 android 汉字转拼音带多音字识别功能,供大家参考,具体内容如下 问题来源 在做地名按首字母排序的时候出现了这样一个bug。长沙会被翻译拼音成zhangsha,重庆会被翻译拼音成zhong qing。于是排序出了问题。 汉字转拼音库和多音字
本文向大家介绍JAVA实现汉字转拼音功能代码实例,包括了JAVA实现汉字转拼音功能代码实例的使用技巧和注意事项,需要的朋友参考一下 JAVA中汉字转拼音的方法并不复杂,可以使用pinyin4j包来实现。 一、下载pinyin4j的架包,并导入项目中,如下: 如果是maven项目,maven依赖如下: 二、汉字转拼音方法,附上代码例子,如下: 其中,拼音格式参数说明: HanyuPinyinCase