HMM原理
HMM模型综上描述起来就是五个要素:
两个序列:隐藏序列和观测序列
三个矩阵:初始状态矩阵,发射状态矩阵以及状态转移矩阵
参考B站 手写AI
一、中文分词
已分好的词 <==> 每个词的状态
已分好的词:
麻辣肥牛 真 好吃 !
每个词的状态:
BMME S BE S
二、HMM分词训练与预测
2.1 HMM之初始矩阵
初始矩阵:统计每篇文章(每行)的第一个字是什么状态(一开始统计的数值都是频次)
今天 天气 真 不错 。
麻辣肥牛 好吃 !
我 喜欢 吃 好吃 的 !
以上的三行句子中,第一个字的状态:一二句为B,第三句为S
2.2 HMM之状态转移矩阵
转移矩阵:当前状态到下一状态的概率(这里是4 * 4的矩阵)
继续使用上面的三句话作为语料库,该语料库的分词状态如下(由已分好的词得到的状态):
B E B E S B E S
B M M E B E S
S B E S B E S S
转移矩阵如下:
2.3 HMM之发射矩阵
发射矩阵:统计某种状态下,所有字出现的次数(概率)
2.4 预测
预测:今天的天气不错 --> BESBEBE --> 今天_的_天气_不错
这里我们预测的句子中的词都出现在上面的预料库中了,没有考虑新词的情况,只是为了举例子
假设绿色的这条是最优路径:
最后就是绿色路径的概率计算过程:
2.5 维特比算法
从众多路径中,迅速选择出最优的路径
1-4中的最优并不一定是全局最优,都成为首选
若想到达B,有上面的1-4条路径,其中必然有一条最优路径,假设为3,其他会被删除
这里假设选出了这么4条路径,这4条路径就不能再继续选了,不能进行比较了。
然后继续选,和上面同理,到每一种状态有4条路径,总共16条,选出4条路径。