自然语言处理总复习(三)——Markov模型
一、HMM(隐马尔科夫模型)的形式化定义
二、隐马尔可夫模型的三个基本问题及其算法
(一)评估问题
1. 问题描述
给定一个观察序列 O = O 1 O 2 . . . O T O=O_1O_2...O_T O=O1O2...OT和模型 λ \lambda λ,如何计算给定模型 λ \lambda λ下观察序列 O O O的概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ).
2. 解决方法
(1) 前向算法
(2) 后向算法
(二)解码问题
1. 问题描述
给定一个观察序列 O = O 1 O 2 … O T O=O_1O_2\ldots O_T O=O1O2…OT和模型 λ \lambda λ,如何计算状态序列 Q = q 1 q 2 … q T Q=q_1q_2\ldots q_T Q=q1q2…qT, 使得该状态序列能“最好地解释”观察序列。
所求的 Q Q Q应当时在某个准则下时“最优”的,因此也成 Q Q Q为最优路径,解码问题即是确定最优路径的问题。
该问题可以形式化为:
Q
∗
=
arg
max
Q
P
(
Q
∣
O
,
λ
)
Q^* = \mathop{\arg\max}\limits_{Q} P(Q|O,\lambda)
Q∗=QargmaxP(Q∣O,λ)
2. 解决方法 —— Viterbi算法(基于Viterbi变量的动态规划算法)
Viterbi变量 在时间 t 沿状态序列
q
1
q
2
…
q
t
q_1q_2\ldots q_t
q1q2…qt且
q
t
=
S
i
q_t=S_i
qt=Si而产生出
O
1
O
2
…
O
t
O_1O_2\ldots O_t
O1O2…Ot的最大概率,即:
δ
t
(
i
)
=
max
q
1
,
q
2
,
…
,
q
t
−
1
P
(
q
1
,
q
2
,
…
,
q
t
=
S
i
,
O
1
,
O
2
,
…
,
O
t
∣
λ
)
\delta_t(i)= \mathop{\max}\limits_{q_1,q_2,\ldots,q_{t-1}} P(q_1,q_2,\ldots,q_{t}=S_i, O_1, O_2, \ldots, O_t | \lambda)
δt(i)=q1,q2,…,qt−1maxP(q1,q2,…,qt=Si,O1,O2,…,Ot∣λ)
Viterbi变量说明的是:从初始状态到 t 时刻的状态 S i S_i Si的所有路径中的最佳转移路径
(判断最佳的条件:这条路径代表的状态能够产生相应的观测序列的概率最大)
(三)学习问题
1. 问题描述
2. 解决方法
三、隐马尔科夫模型的应用
(一)词性标注
四、隐马尔可夫模型总结