自然语言上下文相关的特性建立模型——统计语言模型(statistical language model)
一个句子是否合理,看它的可能性大小如何。
如果 S 表示一连串特定顺序排列的词 w1, w2,…, wn ,S在文本中出现的可能性,
于是P(S) 可展开为:
P(S) = =P(w1,w2,w3,……,wn)
根据条件概率:
P(S) = =P(w1,w2,w3,……,wn)=P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)
其中 P (w1) 表示第一个词w1 出现的概率;P (w2|w1) 是在已知第一个词的前提下,第二个词出现的概率;以次类推。不难看出,到了词wn,它的出现概率取决于它前面所有词。从计算上来看,各种可能性太多,无法实现。
因此我们假定任意一个词wi的出现概率只同它前面的词 wi-1 有关(即马尔可夫假设),于是问题就变得很简单了。现在,S 出现的概率就变为:
P(S) = P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1)… (二元模型BI-Gram)
(当然,也可以假设一个词又前面N-1个词决定,模型稍微复杂些N——Gram。)
接下来的问题就是如何估计 P (wi|wi-1)。现在有了大量机读文本后,这个问题变得很简单,只要数一数这对词(wi-1,wi) 在统计的文本中出现了多少次,以及 wi-1 本身在同样的文本中前后相邻出现了多少次,然后用两个数一除就可以了,(P(wi|wi-1) = P (wi)/[P(wi-1,wi)]。
概率计算方法。。。
使用语言模型中所有条件概率,为模型参数,对语料的统计,得到参数的过程叫做模型的训练。
出现了很多条件概率为零(即很多字词没出现过),这种模型称为 不平滑。
重新估算概率公式——古德-图灵估计(Good-Turing Estimate):
出现次数小于某个阀值的词,频率才会下调,下调得到的频率总和给未出现的词。出现次数越少,折扣愈多。卡茨退避法。
http://book.51cto.com/art/201205/337603.htm
语料选取:
训练语料和应用语料一致;
训练量足够大。
对于能找到模式、量比较大的噪音数据进行预处理。