首页 > 代码库 > NLP之最短路径分词(五)

NLP之最短路径分词(五)

动态规划 + viterbi最短路径 + 1阶马尔可夫链

最短路径分词是将可能性最大的句子切分出来。首先对句子进行全切分,找出所有可能的字词,利用动态规划生成词图,并利用1阶马尔可夫链计算出所有的路径权值,找出图中最短的路径,属于机械式规则+统计的分词方法。

技术分享

 

在句子头尾分别加上B 和 E,找出B和E的最短路径即可。图中的数字表示次数,只是为了方便标注,可以理解为上面的最长路径即是要求的最短路径,当然次数是随意标注的,并不是从字典查找得来的。

 具体实现见 https://github.com/hankcs/HanLP

PS: 
1阶马尔可夫链 
P(AB) = P(A)•P(B|A)
以下计算方式来自张华平教授的开源ICTCLAS
weight= -Math.log(平滑参数 * A词的总频率 / (所有词的频率) + (1 - 平滑参数) * ((1 - 平滑因子) * A词后面出现B词的频率 / A词的总频率 + 平滑因子));

NLP之最短路径分词(五)