- 签证留学 |
- 笔译 |
- 口译
- 求职 |
- 日/韩语 |
- 德语
除了图6.2的表中的概率之外,我们的语法还包括如图6.3所示的二元语法概率(是一个特殊的单词,它的意思是“句子的开始”)。
图6.3 Berkeley Restaurant Project中关于二元语法的更多片断
现在我们可以计算句子I want to eat British food或句子I want to eat Chinese food的概率了, 计算时只要把相邻两个单词的二元语法概率相乘即可,如下所示:
P(I want to eat British food) = P(Il )P(wantlI)P(tolwant)
P(eatlto)P(Britishleat)
P(foodIBritish)
=0.25*0.32*0.65*0.26*0.002*0.60
=0.000016
我们可以看出,由于概率都小于1(根据概率的定义),相乘的概率越多,所有概率的乘积就越小,这样就会有数值下溢的危险。如果要计算一个相当长的符号串的概率(例如,一段文字或者一篇文件),习惯上就采用对数空间来进行计算,我们给每个概率取对数(称为对数概率logprob),把所有的对数相加(因为在对数空间中的加与在线性空间中的乘是等价的),然后再取结果的反对数。由于这个原因,事实上已经存储了很多关于N元语法的标准算法,并且所有概率都是用对数概率来计算的。在这段文本中,我们取的对数都是以2为底数的(也就是说,我们用log来表示log2)。
三元语法模型与二元语法模型相同,不过这时要用前面两个单词作为条件。例如,用P(foodleat British)来替代P(foodI British)。为了计算每个句子开头的三元语法概率,可以使用两个假想的单词(pseudo-word)作为三元语法的条件,即P(I1
句子开头的假想的单词。
N元语法模型可以使用训练语料库和归一化的方法得到。对于概率模型来说,所谓归一化(normalizing),就是用某个总数来除,使最后得到的概率的值处于0和1之间,以保持概率的合法性。我们取某个训练语料库,从这个语料库中取某个特定的二元语法的计数(即出现次数),然后用第一个单词相同的二元语法的总数作为除数来除这个计数:
我们可以把这个等式加以简化,因为以给定单词w n-1,开头的所有二元语法的计数必定等于该单词w n-1的一元语法的计数。读者可以想一想以便确信这样的结论。
对于一般的N元语法,参数估计为:
在式(6.12)中,用前面第一个单词的观察频度来除这个特定单词序列的观察频度,就可以得到N元语法概率的估计值。这个比值称为相对频度(relative frequency)。在最大似然估计(Maximum Likelihood Estimation, 简称MLE)技术中,相对频度是概率估计的一种方法,因为对于给定的模型M来说,最后算出的参数集能使训练集T的似然度,即P(TIM)达到最大值。例如,在容量为1000000个单词的Brown语料库中,假定单词Chinese出现了400次。那么,在另一个容量为1 000 000个单词的文本中,单词Chinese的出现概率是多少呢?MLE可以估计出,其概率也是400/1000000或0.0004。现在,0.0004并不是在一切情况下单词Chinese出现的概率估计值,但这个概率能使我们估计出,在容量为1 000000个单词的语料库中,Chinese这个单词最可能出现的次数大约是400次。
除了使用相对频度来估计N元语法概率的方法之外,还有更好的方法。但是,在其他方法中,使用相对频度这种思路的算法复杂得多。图6.4是从
Berkeley Restaurant Project中得到的一个二元语法的某些二元语法计数。注意,大多数的计数为零。实际上,我们选择这7个单词样本时已经设法尽量使它们彼此接应得比较好;如果随机地选择7个单词,数据将更加稀疏。
图6.4 在Berkeley Restaurant Project 语料库(容量约为10 000个句子)中,从1616个单词的“型”中选出7个单词的二元语法计数
图6.5是经过归一化之后的二元语法概率(用下列每个单词相应的一元语法计数来除各自的二元语法计数)。
I 3437
want 1215
to 3256
eat 938
Chinese 213
food 1506
lunch 459
7个单词的二元语法概率如下:
图6.5 在Berkeley Restaurant Project语料库(容量约为10 000个句子)中,从1616个单词的“型”中,选出7个单词的二元语法概率
责任编辑:admin