- 在本节中,我们会讨论序列的长度是变化的,也是一个变量 we would like the length of sequence,n,to alse be a random variable
- 一个简单的解决方案是,我们经常定义define Xn=STOP,STOP是一个特殊的标志(where STOP is a special symbol)
在了解了上述的定义之后,我们像上一节当中讲到的那样,使用马尔可夫过程:
可以看出来,在这里使用的是二阶马尔可夫过程。二阶马尔可夫就是假设当前的词与它前面的两个词都有关系。
这也就引出了Trigram Language Model,三元语言模型
Trigram Language Model
Trigram Language Model由下面来组成:
1、一个有限的集合V,a finite set V
2、一个参数q(w|u,v),每一个三元(u,v,w)中,w属于v和{STOP}的并集;u,v属于V和{*}的并集。也就是说,按照u,v,w这个顺序,w排在最后,当到达末尾的时候w为STOP;u和v排在单词串的前面,当非常靠前的时候,u,v只能是*
这样看来,三元模型下的概率为:
如果觉得还不是很形象,可以看图中的例子,到目前为止,应该还是好理解的。
现在的问题就是,公式有了,概率q该怎么计算呢?
一个计算方法为(最大似然估计maximum likelihood estimate,基本思想是:当从模型总体随机抽取n组样本观测值后,最合理的参数估计量应该使得从模型中抽取该n组样本观测值的概率最大)
其实,这个计算方法是有不足的地方的。
例如,如果在样本中没有出现过the dog laugh这个单词序列,那么q=0,也就意味着the dog laughs这句话永远不会出现,这是不可能的。
而如果the dog序列没有出现过,那么count(the,dog)也等于0,但是它的位置又在分母上,这就出现了未定义的计算。
这个问题,过后再谈。