词类标注(part of speech, POS)
- 手写规则[基于规则的标注]
- 统计方法[HMM ,基于转换的标注]
(大多数)英语词的分类
- 封闭类(虚词) 介词
- 开放类 名词、动词、形容词、副词
给句子指派一个词类标记序列,对包含n个标记的wn1选择最大可能的标记序列tn1
tn1 = argmax P(tn1|wn1)
HMM
- HMM 假设
- 单词出现的概率只与它本身的词类标记有关 P(wn1|tn1) = ∏P(wi|ti)
- 标记出现的概率只与它前一个标记有关 P(tn1) = ∏ P(ti|ti-1)
- 算法的形式化
Q = q1q2...qN; N个状态(state)的集合
A = a11a12...an1..amn:状态转移矩阵(transition probability matrix) A
O = o1o2...oT:T个观察(observations)序列,每个观察来自词汇V = v1v2...vv
B = bi(oi):观察似然度(observation likehoods)的序列,又称发射序列。每个观察似然度表示从状态i生成的观察值oi的概率
q0,qr:特定的开始和特定的终结状态
A 对应先验概率(prior)
B 对应似然度(likelihood)
- Viterbi算法
取一个单独的HMM和所观察的单词序列O = (o1o2...ot)作为输入,返回概率最大的状态/标记序列Q = (q1q2...qT)以及它们的概率作为输出
vt(j) = max vt-1(i)aijbj(ot)
TBL
三阶段:
1.每个单词标记
2.检查每一个可能的转换,选择最大程度改善标注的转换
3.根据这个规则对数据进行重新标注
隐马尔科夫和最大熵模型
马尔可夫链
不能表示固有的歧义问题
其他表示方法:
π = π1,π2,...πN 在状态上的初始概率分布
QA = |qx,qy,... | 合法的接收状态集合
HMM
假设1、特定状态只与前一状态有关
假设2、输出观察只与产生该观察的状态有关
- 三个基本问题
似然度问题:给定HMM λ(A,B)和一观察序列O,确定似然度P(O|λ)
解码问题: 给定一观察序列和HMM λ(A,B)找出隐藏状态序列
学习问题:给定一观察序列和状态集合,学习HMM λ(A,B)
问题1
对于特定的隐藏状态序列Q: q1,q2,....qT以及
O: o1,o2,......oT观察序列的似然度
P(O|Q) = ∏P(oi|qi)
联合概率:P(O,Q) = P(O|Q) X P(Q) = ∏ P(oi|qi) x ∏P(qi|qi-1)
去除特定条件:
P(O) = ∑P(O,Q) = ∑P(O|Q)P(Q)
- 向前算法:O(NT) -- O(N2T)
α t(j) 表示对于给定的自动机λ,在看了前t个观察之后,在状态j的概率,α t(j)=P(o1o2..otqt=j|λ)(注:这里的状态是给出前t个观察之后,处于qj的观察状态,附带观察)
αt(j) = ∑αt-1(j) aijbj(ot)
问题2
- Viterbi算法
vt(j) 表示对于给定的自动机λ,HMM在看了前t个观察并通过了概率最大的状态序列q0,q1,...qt-1之后在状态j的概率。vt(j) = maxP(q0q1...qt-1,o1,o2,...ot,qt= j|λ)
vt(j) = maxvt-1(i)aijbj(ot)
问题3
- 向前-向后算法
在状态i和状态j之间的一个特定的转移概率aij的最大似然估计通过转移次数来计算,aij = C(i→j)/∑C(i→q)
- 反复地估计所得的计数,从转移概率和观察概率的估计值开始,反复地使用这些估计概率来推出越来越好的概率
- 对于一个观察,计算它二点前向概率,从而得到
估计概率,把该估计量对前向概率有贡献的所有不同路径平摊
向后概率β表示对于给定的自动机λ,在状态i和时刻t观察从时刻t+1到终点的观察概率。βt(i) = P(ot+1,ot+2,...oT|qt = i,λ)
aij = 从状态i转移到状态j的期望/从状态i转移的期望数
ξt(i,j) = P(qt=i,qt+1=j|O,λ)
not-quite-ξt(i,j) = P(qt=i,qt+1=j,O|λ) = αt(i)aijbj(ot+1)βt+1(j)
=> P(X|Y,Z) = P(X,Y|Z)/P(Y|Z)
P(O|λ) = αT(N) = βT(1) = ∑jαt(j)β(j)
aij = ∑tξt(i,j)/∑t∑jξt(i,j)
bi(vk) 表示在给定状态j,观察V中的一个给定的符号vk的概率, = 观察词汇V中的一个给定的符号vk的期望数/状态j的期望次数
γt(j) = P(qt = j | O,λ) = P(qt=j,O|λ) / P(O|λ) = αt(j)βt(j)/P(O|λ)
EM算法
最大熵
与HMM不同之处: 直接比较后验概率,不使用似然度与先验分离的模型
T = argmaxP(T|W) = argmax ∏P(tagi|wordi,tagi-1)
HMM:
针对给定观察的状态序列概率:
P(Q|O) = ∏P(oi|qi) x ∏P(qi|qi-1)
MEMM:
P(Q|O) = ∏P(qi|qi-1,oi)
p(q|q',o) = exp(∑wifi(o,q))/Z(o,q')
MEMM的解码和训练
对于状态j在时间t的Viterbi值
vt(j) = max vt-1(i)aijbj(ot) , 1 <= j <= N, 1 < t <= T