主要介绍HMM和CRF在NER序列标注问题中的应用。
HMM
-
例子:O O B I I I(我在浙江大学),状态序列是【O O B I I I】,观测序列是【我在浙江大学】
属于生成模型,包含隐变量,要对x(状态)和y(观测)联合建模,即P(X,Y)。
- 两个假设
- 齐次马尔可夫假设:当前状态只有前一个状态有关,与其他状态和观测值无关
- 观测独立性假设:当前观测值只跟当前状态有关,跟其他状态无关也跟其他观测值无关
-
五元素
观测集合:所有组成句子的字的集合A
状态集合这里是S={B,I,O}(一般还隐式包括start和end两个特殊状态)
发射概率:每个状态转移到每个字的概率P(Ai|Sj)
状态转移概率:状态之间转移的概率P(Si|Sj)
初始概率:每个状态作为第一个状态的概率
-
训练
分两种,一种是训练集包括句子和标注结果(大多数序列标注任务),这个时候用统计下五元素即可。第二种是只有观测序列,要用baum-welch算法预估参数。
- 概率计算:给定观测集合,发射概率,状态转移概率、初始概率计算该观测集合出现的概率(计算所有可能的状态序列对应的观测集合的联合概率和):前向算法
- 解码:给定马尔可夫模型和一个观测序列,判断最可能的状态序列:Viterbi算法
CRF
-
例子 :我在浙江大学(O O B I I I),观测序列是【我在浙江大学】,状态序列是【O O B I I I】;X是【我在浙江大学】,Y是【O O B I I I】
直接对P(Y|X)建模,属于给定输入序列对输出序列的判别模型,给定句子x(观测),判断标注序列的概率y(状态)
- 概率计算:给定条件随机场P(Y|X)和输入序列x和输出序列y,计算在当前时刻t观测值为k的概率:前向算法
- 解码:给定CRF模型和一个状态序列,判断最可能的观测序列:Viterbi算法