Pinyin2Hanzi

拼音转汉字
授权协议 MIT
开发语言 Python
所属分类 程序开发、 拼音转换工具包
软件类型 开源软件
地区 国产
投 递 者 罗伟兆
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

拼音转汉字,可以作为拼音输入法的转换引擎,兼容Python 2、Python 3。

安装

Python 2:

$ python setup.py install --user

Python 3:

$ python3 setup.py install --user

使用

下面的示例在Python 3中运行。

基于HMM的转换

原理是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`不规范




基于DAG的转换

原理是词库+动态规划。

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`不存在




自定义params

实现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