BMES => B-begin:词语开始、M-middle:词语中间、E-end:词语结束、S-single:单独成词
训练的过程,就是求三个矩阵的过程
- 初始概率矩阵
- 转移概率矩阵
- 发射矩阵
每个字有4种可能性,上图中有7个字,就是 4^7 种可能性
维特比算法,从众多路径中,挑出最优的那条,他和隐马尔可夫没有强关联
初始概率矩阵
今天 天气 真 不错。 麻辣肥牛 好吃 ! 我 喜欢 吃 好吃 的! | => | (标点也是一个独立的S) BMME BE S S BE S BE S S |
统计每篇文章(每行)第一个字是什么状态(统计的数值都是频次)
B | M | S | E |
2 | 0 | 1 | 0 |
如果 M、E 有值,那代码 100% 是写错了,因为 第一个字,不可能是中间,也不可能是结束
根据频率得到概率
B | M | S | E |
0.667 | 0 | 0.333 | 0 |
2/3 = 0.667
1/3 = 0.333
转移概率矩阵
当前状态到下一状态的概率
按行统计 BM = 1/(1+6) = 0.142 , 6/7 = 0.857
发射矩阵
统计某种状态下,所有字出现的次数(概率)
依次遍历语料库的每一个字
预测
4^7 种状态,计算每一种状态
7个字,就有 4^7 次计算,计算量相当大,所以会引入 维特比算法
https://www.bilibili.com/video/BV1aP4y147gA?p=4