拼音转汉字,可以作为拼音输入法的转换引擎,兼容Python2、Python3。安装Python2:$ python setup.py install --userPython3:$ python3 setup.py install --user使用下面的示例在Python3中运行。基于HMM的转换原理是viterbi算法。from Pinyin2Hanzi import DefaultHmmParamsfrom Pinyin2Hanzi import viterbihmmparams = 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 DefaultDagParamsfrom Pinyin2Hanzi import dagdagparams = 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_pinyinfor py in all_pinyin(): print(py)将拼音转换为“规范”的拼音:from Pinyin2Hanzi import simplify_pinyinprint(simplify_pinyin('lue'))# 输出:'lve'print(simplify_pinyin('lüè'))# 输出:'lve'判断是否是“规范”的拼音:from Pinyin2Hanzi import is_pinyinprint(is_pinyin('lue'))# 输出:Falseprint(is_pinyin('lüè'))# 输出:Falseprint(is_pinyin('lvee'))# 输出:Falseprint(is_pinyin('lve'))# 输出:True![](?x-oss-process=image/resize,w_800)
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
![](https://stacdn.proginn.com/image/common/qrcode/download.png?v=1)
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论