马尔可夫链算法原理与实现

来源:互联网 发布:淘宝助理数据包 编辑:程序博客网 时间:2024/06/10 03:05

马尔可夫链算法原理与实现

@(ML)[machine learining]

  • 马尔可夫链算法原理与实现
    • 一概述
    • 二基本流程
      • 1得到语句
      • 2句子出现的概率
      • 3马尔可夫假设
      • 4计算条件概率
      • 5结果

(一)概述

参考自《数学之美》第3章
在计算机的早期时代,约1980前,科学家们倾向于模仿人类的思维来让计算机读懂自然语言。经过近20年的尝试,被证明是不可行的,目前主流是基于统计的模型来对自然语言分析。即通过分析某个句子出现的概率来判断这个句子是否合理,从而找出最大概率的句子,就是分析的结果。

统计语言模型产生的初衷是为了解决语音识别的问题。在语音识别中,计算机需要知道一个文字序列是否能构成一个大家理解而且有意义的兔子,然后显示或者打印给使用者。

(二)基本流程

1、得到语句

计算机得到一个文字语句。比如分析语音得出的一个文字句子。

2、句子出现的概率

假设某个语句的组成词语为

S = w1,w2,...,wn

这个句子出现的概率为:

P(S)= P(w1,w2,...,wn)

利用条件概率公式,S这个序列出现的概率等于每一个词出现的条件概率相乘:

P(S)= P(w1,w2,...,wn)    = P(w1)*P(w2|w1)*P(w3|w1,w2)...P(wn|w1,w2...wn-1)

其中P(w1)表示第1个词出现的概率,P(w2|w1)表示已知第一个词的前提下,第二个词出现的概率。
从计算上来看,计算第1个词出现的概率是很简单的,第2个也不难,第3个就开始很难了,10个以后基本就不可能算了。

3、马尔可夫假设

马尔可夫提出了一个颇为有效的方法,他假设任意一个词wi出现的概率只与它前面的词wi-1有关,于是问题就变得简单了

P(S)= P(w1,w2,...,wn)    = P(w1)*P(w2|w1)*P(w3|w2)...P(wn|wn-1)

4、计算条件概率

有了马尔可夫假设之后,剩下的问题就是怎么计算条件概率了,概率定义:
image
即已知wi-1的条件下,wi的出现概率为(wi-1,wi)同时出现的概率除以wi-1出现的概率。

现在问题就变得简单了,我们有大量的文本,可以统计出(wi-1,wi)与wi-1出现的概率:
image

其中#表示全部词的数量,#(wi-1)表示在这些文本中wi-1出现的数量。因此

image

5、结果

全部条件概率出来以后,将其相乘即可得到最终结果。

简单小结一下,这种方法的原理在于计算每个词在其上一个词现出的前提下出现的概率。

原创粉丝点击