Pinyin2Hanzi 拼音转汉字

我要开发同款
匿名用户2016年02月16日
307阅读

技术信息

授权协议
MIT

作品详情

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

安装Pytho2:

$ pytho setup.py istall --userPytho3:

$ pytho3 setup.py istall --user使用下面的示例在Pytho3中运行。

基于HMM的转换原理是viterbi算法。

from Piyi2Hazi import DefaultHmmParamsfrom Piyi2Hazi import viterbihmmparams = DefaultHmmParams()## 2个候选result = viterbi(hmm_params=hmmparams, observatios=('i', 'zhi', 'bu', 'zhi', 'dao'), path_um = 2)for item i result:    prit(item.score, item.path)'''输出1.3155294593897203e-08 ['你', '知', '不', '知', '道']3.6677865125992192e-09 ['你', '只', '不', '知', '道']'''## 2个候选,使用对数打分result = viterbi(hmm_params=hmmparams, observatios=('i', 'zhi', 'bu', 'zhi', 'dao'), path_um = 2, log = True)for item i result:    prit(item.score, item.path)'''输出-18.14644152864202 ['你', '知', '不', '知', '道']-19.423677486918002 ['你', '只', '不', '知', '道']'''## 2个候选,使用对数打分result = viterbi(hmm_params=hmmparams, observatios=('i', 'zhii', 'bu', 'zhi', 'dao'), path_um = 2, log = True)for item i result:    prit(item.score, item.path)# 发生KeyError,`zhii`不规范

基于DAG的转换原理是词库+动态规划。

from Piyi2Hazi import DefaultDagParamsfrom Piyi2Hazi import dagdagparams = DefaultDagParams()## 2个候选result = dag(dagparams, ('i', 'bu', 'zhi', 'dao', 'de', 'shi'), path_um=2)for item i result:    prit(item.score, item.path)''' 输出0.08117536840088911 ['你不知道', '的是']0.04149191639287887 ['你不知道', '的诗']'''## 2个候选,使用对数打分result = dag(dagparams, ('i', 'bu', 'zhi', 'dao', 'de', 'shi'), path_um=2, log=True)for item i result:    prit(item.score, item.path)''' 输出-2.5111434226494866 ['你不知道', '的是']-3.1822566564324477 ['你不知道', '的诗']'''## 1个候选prit( dag(dagparams, ['ti', 'chu', 'le', 'bu', 'cuo', 'de', 'jie', 'jve', 'fag', 'a'], path_um=1) )'''输出[< score=0.0017174549839096384, path=['提出了', '不错', '的', '解决方案'] >]'''## 2个候选,使用对数打分result = dag(dagparams, ('i', 'bu', 'zhi', 'dao', 'de', 'shii'), path_um=2, log=True)prit(result)# 输出空列表,因为`shii`不存在

自定义params实现AbstractHmmParams,AbstractDagParams这两个接口即可。具体可以参考源码。

关于拼音给出的拼音必须是“规范”的。例如

略->lve

据->ju

列举所有“规范”的拼音:

from Piyi2Hazi import all_piyifor py i all_piyi():        prit(py)

将拼音转换为“规范”的拼音:

from Piyi2Hazi import simplify_piyiprit(simplify_piyi('lue'))# 输出:'lve'prit(simplify_piyi('lüè'))# 输出:'lve'

判断是否是“规范”的拼音:

from Piyi2Hazi import is_piyiprit(is_piyi('lue'))# 输出:Falseprit(is_piyi('lüè'))# 输出:Falseprit(is_piyi('lvee'))# 输出:Falseprit(is_piyi('lve'))# 输出:True

功能介绍

拼音转汉字,可以作为拼音输入法的转换引擎,兼容Python 2、Python 3。 安装 Python 2: $ python setup.py install --user Python 3:...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论