NLP

隐马尔科夫模型(HMM)

2018-04-20  本文已影响108人  errorrrr

隐形马尔可夫模型,英文是 Hidden Markov Models,所以以下就简称 HMM。
既是马尔可夫模型,就一定存在马尔可夫链,该马尔可夫链服从马尔可夫性质:即无记忆性。也就是说,这一时刻的状态,受且只受前一时刻的影响,而不受更往前时刻的状态的影响。
其实隐马尔科夫模型就是一个三元的元组,隐含状态转移概率矩阵 A,观测状态转移概率矩阵 B,初始状态概率矩阵π。
这里说说大概怎么用这个模型。
假设我有几个句子:

要买\o 一个\o 70平\m 房子\o 价格\o 6000元\j 每平\o
想\o 买个\o 大小\o 80\m 房子\o 价格\o 5000元\j 每平\o
一个\o 100平\m 房子\o 每平\o 9000\j
有没有\o 60平\m 房子\o 两个人\o 住\o 够\o
大小\o 100平\m 房子\o 价格\o 80万\j

那么这些句子连在一起我们就可以看做是一个链,在这个链中,每个词就是一个可观测序列,每个词对应的标签就是它的隐藏状态。例如:要买\o,那么要买就是可观测的,\o就是它的隐藏状态。
对于这个链的三个状态分别如下:

sj/si \o \m \j
\o 13/22 5/22 4/22
\m 1 0 0
\j 1 0 0

这个矩阵就是指每个隐藏状态和它前一刻的状态的转移概率。

sj/oi 要买 一个 70平 房子 价格 每平 6000元 买个 大小 80 5000元 100平 9000 有没有 60平 两个人 80万
\o 1/22 2/22 0 5/22 3/22 3/22 0 1/22 1/22 2/22 0 0 0 0 1/22 0 1/22 1/22 1/22 0
\m 0 0 1/5 0 0 0 0 0 0 0 1/5 0 2/5 0 0 1/5 0 0 0 0
\j 0 0 0 0 0 0 1/3 0 0 0 0 1/3 0 1/3 0 0 0 0 0 0

一般的,可以用λ=(A,B,π)三元组来简洁的表示一个隐马尔可夫模型。隐马尔可夫模型实际上是标准马尔可夫模型的扩展,添加了可观测状态集合和这些状态与隐含状态之间的概率关系。


一般HMM模型对应着三个问题,我们来看看百度怎么说的这三个问题:


这里大概讲两种算法:

向前算法

假设我拿上面的一句话来做向前算法:
一个\o 100平\m 房子\o 每平\o 9000\j

维特比求解

也是我们假设我们有一句话:
一个 100平 房子 每平 9000
在这里我们只知道这个序列的可观测状态,想要获得每一个词的隐含状态。那么,

最后我们可以获得每一时刻最大概率的隐藏状态就是每一时刻观测状态对应的隐藏状态。
这个算法大概就是通过已知的可以观察到的序列,和一些已知的状态转换之间的概率情况,通过综合状态之间的转移概率和前一个状态的情况计算出概率最大的状态转换路径,从而推断出隐含状态的序列的情况。

上一篇下一篇

猜你喜欢

热点阅读