设wi是文本中的任意一个词,如果已知它在该文本中的前两个词 wi-2w-1,便可以用条件概率P(wi|wi-2w-1)来预测wi出现的概率。这就是统计语言模型的概念。一般来说,如果用变量W代表文本中一个任意的词序列,它由顺序排列的n个词组成,即W=w1w2...wn,则统计语言模型就是该词序列W在文本中出现的概率P(W)。利用概率的乘积公式,P(W)可展开为:
P(W) = P(w1)P(w2|w1)P(w3| w1 w2)...P(wn|w1 w2...wn-1)
不难看出,为了预测词wn的出现概率,必须知道它前面所有词的出现概率。从计算上来看,这种方法太复杂了。如果任意一个词wi的出现概率只同它前面的两个词有关,问题就可以得到极大的简化。 这时的语言模型叫做三元模型 (tri-gram):
P(W)≈P(w1)P(w2|w1)∏i(i=3,...,nP(wi|wi-2w-1)
符号∏i i=3,...,n P(...) 表示概率的连乘。一般来说,N元模型就是假设当前词的出现概率只同它前面的N-1个词有关。重要的是这些概率参数都是可以通过大规模语料库来计算的。比如三元概率有
P(wi|wi-2wi-1) ≈ count(wi-2wi-1wi) /count(wi-2wi-1)
式中count(...) 表示一个特定词序列在整个语料库中出现的累计次数。
统计语言模型有点像天气预报中使用的概率方法,用来估计概率参数的大规模语料库好比是一个地区历年积累起来的气象记录。而用三元模型来做天气预报,就好比是根据前两天的天气情况来预测今天的天气。天气预报当然不可能百分之百准确,但是我们大概不会因此就全盘否定这种实用的概率方法吧。
摘自黄昌宁先生论文《中文信息处理的主流技术是什么?》