HMM与Viterbi算法之间的关系以及Viterbi算法如何能够解决分词问题
最近在学习Viterbi算法的过程中遇到一个很棘手的问题,总是搞不清Viterbi算法在实际应用中到底起到了一个什么作用,这让我心烦不已,好在这位老哥的这篇实例文章给了我极大的帮助,在此感谢一下,也帮转一下,希望能够帮助更多的朋友.
(原)https://blog.****.net/jiangzhenkang/article/details/84555947
我认真阅读了这篇文章,发现这位老哥在计算第二步"我"到"来"的过程中有一个错误,在此记录一下,免得自己钻牛角尖
我们知道了”我“,然后开始求”来“
我们将第一步得到的三个概率作为传递给”来“,然后根据发射概率求得第二部是每个状态的值:
注意 求解第二步的过程中,可能遇到多个结果,我们取最大值,比如:在第二步为B的情况有三种:
1、第一步为B,第二步为B, 此时概率为第一步为B的概率B到B的转移概率B到”来“的发射概率 = 0.24(上一步求得)* 0(根据转移矩阵)*0.8(根据发射概率矩阵求得) = 0
2、第一步为E,第二步为B,此时概率为第一步为E的概率E到B的转移概率B到”来“的发射概率 = 0(上一步求得)* 2(根据转移矩阵)*0.8(根据发射概率矩阵求得) = 0
3、第一步为S,第二步为B,此时概率为第一步为S的概率S到B的转移概率B到”来“的发射概率 = 0.32(上一步求得)* 0.8(根据转移矩阵)0.8(根据发射概率矩阵求得) = 0.32*0.64 = 0.2048
所以上述三个结果取最大值得到第二步为B的概率为0.1024, 路径是SB
同理:
所以上述三个结果取最大值得到第二步为E的概率为0.12,路径是BE
所以上述三个结果取最大值得到第二步为S的概率为0.0256,路径是SS
这么算才是正确的.