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

这么算才是正确的.
 

HMM与Viterbi算法之间的关系以及Viterbi算法如何能够解决分词问题