- 签证留学 |
- 笔译 |
- 口译
- 求职 |
- 日/韩语 |
- 德语
概率模型是给单词的符号串指派概率的方法,不论是计算整个句子的概率,还是在一个序列中预测下一个单词的概率,都要使用概率模型。最简单的单词序列的概率模型是单纯地假定语言中的任何一个单词后面可以跟随该语言中的任何一个单词。在这种理论的一个概率版本中,假定任何一个单词后面可能跟随的该语言中的任意其他单词的概率是相等的。如果英语中有100000个单词,那么任何一个单词后面跟随其他任何单词的概率将是1/100000,即0.00001。
在稍微复杂一些的单词序列模型中,任何一个单词后面可以跟随着其他任何单词,但后面一个单词要按照它正常的频度来出现。例如,单词the的频度相对比较高,在1000000个单词的Brown语料库中它出现69971次(也就是说,在这个特定的语料库中,有7%的单词是the)。相比之下,单词rabbit在Brown语料库中只出现11次。
我们可以根据这样的相对频度对下面将要出现的单词指派一个概率分布的估值。这样,如果我们看到了任何符号串,就可以指派概率0.07给the,指派概率0.00001给rabbit,从而猜测下面一个单词。例如,假定我们看到了如下的符号串:
Just then, the white
在这个上下文中,跟随着单词white之后,rabbit似乎是一个比the更合理的单词。这说明,我们不是简单地看单词的单独相对频度,而是要看单词对于给定的前面一个单词的条件概率。也就是说,当前面是单词white时rabbit的概率(我们把这个条件概率表示为P(rabbitlwhite))要高于当前面是其他单词时rabbit的概率。
根据这样的直觉,让我们来研究怎样计算一个完整的单词串的概率(我们把这个单词串表示为w1…w n,或者表示为w₁ⁿ)。如果把每个单词在它本身的位置的出现看成一个独立事件,就可以把这种概率表示如下:
我们也可以使用概率的链式规则来分解这个概率:
然而,我们怎样才能计算出概率 呢?当前面给定的单词序列很长时,我们不知道用什么简单方法来计算这时一个单词的概率是多少。例如,我们不能在一个很长的符号串之后,计算每个单词的出现次数,这时需要非常大的语料库。
我们通过一个有用的简化方法来解决这个问题:对于给定的前面的所有单词来逼近一个单词的概率。我们使用的逼近方法很简单:只需要计算当前面给定的单词只是一个单独的单词时,单词的概率是多少!这样的“二元语法模型”(bigram model)通过前面一个单词的条件概率来逼近前面给定的所有单词的概率P(w nlw n-1)。换言之,我们不是计算概率
P (rabbit|Just the other day I saw a)
而是使用如下的概率来逼近这个概率:
P(rabbit|a)
一个单词的概率只依赖于它前面单词的概率的这种假设称为马尔可夫假设。马尔可夫模型是一种概率模型,假设不必查看很远的过去就可以预见到某个单位将来的概率。马尔可夫链时就已经知道了这个术语的这种用法。我们曾经说过,马尔可夫链是一种加权有限状态自动机;在马尔可夫链中,马尔可夫这个术语的直觉含义就是:加权FSA的下一个状态总是依赖于它前面有限的历史(因为在有限自动机中的状态数目总是有限的)。基本的二元语法模型可以看成是每个单词只有一个状态的马尔可夫链。