马尔科夫假设估计推算一个语句出现的概率

1. 假设一段句子为集合S,其中\omega 1,w2,...,wn表示n个词。

2. 目标:计算S在文本中出现的概率,即概率P(S) = P(\omega 1,w2,...,wn)                                                                                     (1.1)

3. 展开P(\omega 1,w2,...,wn)   =  P(\omega 1)·P(\omega 2|w1)·P(\omega 3|w1,w2)···P(\omega n|w1,w2,w3,···wn-1)                                                    (1.2)

4. 为了简化(1.2)引入一种偷懒的模型,即马尔科夫假设:

 P(\omega 1,w2,...,wn)   =  P(\omega 1)·P(\omega 2|w1)·P(\omega 3|w2)···P(\omega n|wn-1)                                                                                         (1.3)

5. 简化的目的就是为了减少计算量,不信的话你自己去算算(1.2),简化的效果就是,把条件概率的条件给压缩了,也就是是说一个词的出现的条件概率只和它的前一个词有关,而不是前一堆词。\omega i条件概率和\omega i-1相关,从而只需要计算:

P(\omega i|wi-1)  =  \frac{P(\omega i * wi-1))}{P(\omega i-1))}                                                                                                                                             (1.4)

6. 现在只需估计出以下两个概率,为什么要估计,数学不是一门很严谨的学科吗?其实是因为,我们很多时候手里只有数据,计算机又没有那么多完美假设,好比积分的定义,在计算机里边基本很难达到要求。

联合概率:P(\omega i * wi-1)                                                                                                                                                        (1.5)

边缘概率:P(\omega i-1))                                                                                                                                                               (1.6)

对于(1.5)和(1.6)的估计,我们假设手里有一个我们建立好的语义库,里边基本包含了一门语言的语句,这个集合表示为R,从而我们统计在R中计算相邻的两个词\omega i\omega i-1的频率,条件是我们的语义库R尽可能的丰富,且尽可能的统计两个相邻词的频次。进而可以估计出:

P(\omega i * wi-1)  \approx \frac{R(wi*wi-1)}{R}

  \approx \frac{R(wi-1))}{R}

进而估计出:P(\omega i|wi-1)  \approx   \frac{R(wi*wi-1)}{R(wi-1))}

 

参考:吴军老师《数学之美》第2版,人民邮电出版社。

你可能感兴趣的:(算法)