目前在工作中使用到了jieba分词,主要是对文章进行切词,在深入理解jieba切词原理的时候,发现其采用了隐马尔科夫模型HMM,因此对HMM进行了研究,这里就自己学习到的知识进行记录。文章主要参考了宗成庆老师的《统计自然语言处理》第二版,非常感谢宗老师!
一、马尔科夫模型
马尔可夫模型是一类随机过程。它的原始模型马尔可夫链,由俄国数学家A.A.马尔可夫于1907年提出。
马尔科夫假设:随机过程中各个状态 O t O_{t} Ot 的概率分布,只与它前一个状态 O t − 1 O_{t-1} Ot−1有关,即
P ( O t ∣ O 1 , O 2 , O 3 . . . O t − 1 ) = P ( O t ∣ O t − 1 ) P\left ( O_{t}|O_{1},O_{2},O_{3}...O_{t-1} \right )=P\left ( O_{t}|O_{t-1} \right ) P(Ot∣O1,O2,O3...Ot−1)=P(Ot∣Ot−1)
一阶马尔可夫链:符合马尔可夫假设的随机过程,即随机过程中各个状态 O t O_{t} Ot 的概率分布,只与它前一个状态 O t − 1 O_{t-1} Ot−1有关。
马尔可夫模型形式化表述:
μ = ( S , π , A ) \mu =\left ( S,\pi ,A \right ) μ=(S,π,A)
S:所有可能的状态集合
π \pi π:初始状态概率
A:转移状态概率
二、隐马尔科夫模型HMM
1、HMM举例
在马尔科夫模型中,每个状态代表了一个可观察的事件,所以马尔科夫模型又称为可视马尔科夫模型。在 隐马尔科夫模型HMM中,我们不知道模型所经历过的状态序列,只知道状态的概率函数,也就是观察到的事件是状态的随机函数。因此,HMM是一个双重的随机过程,其中模型的状态转换过程是隐藏的,可观察事件的随机过程是隐藏状态转换过程的随机函数。
如下图所示为HMM的基本原理:
下面举例对HMM的含义进行说明。假如一个暗室中有N个口袋,每个口袋中有M个不同颜色的球。一个实验员根据某一概率分布随机地选取一个初始口袋,从中根据不同颜色的球的概率分布,随机取出一个球,并向室外的人报告该球的颜色。然后,再根据口袋的概率分布选择另一个口袋,根据不同颜色的球的概率分布从中随机的选择另一个球,重复这个过程。对于室外的人来说,可观察到的只是不同颜色的球的序列,而口袋的序列是不可观察的。在这个过程中,每个口袋对应于HMM中的状态,球的颜色对应于HMM中状态的输出符号,从一个口袋转移到另一个口袋对应于状态转换,从口袋中取出球的颜色对应于从一个状态输出的观察符号。
因此,一个HMM由以下几部分组成:
(1)模型中状态的数目N(口袋的个数)
(2)从每个状态可能输出的不同符合的数目 M(球的不同颜色的数目)
(3)状态转移概率矩阵 A = { a i j } A=\left \{ a_{ij} \right \} A={
aij}( a i j a_{ij} aij是实验员从一个口袋 s i s_{i} si转向另一个口袋 s j s_{j} sj取球的概率),其中,
a i j = P ( q t = s j ∣ q t − 1 = s i ) , 1 ≤ i , j ⩽ N a i j ⩾ 0 ∑ j = 1 N a i j = 1 a_{ij}=P\left ( q_{t}=s_{j} |q_{t-1}=s_{i}\right ),1\leq i,j\leqslant N\\a_{ij} \geqslant 0\\\sum_{j=1}^{N}a_{ij}=1 aij=P(q