统计语言模型(SLM)

时间:2021-05-03 01:43:09

摘自:http://ir.ict.ac.cn/~wangbin/ircourse/index.htm 第12讲

SLM广泛使用于语音识别和统计机器翻译领域,利用概率统计理论研究语言。

规则方法:词、句、篇章的生成比如满足某些规则,不满足该规则就不应存在。
统计方法:任何语言片断都有存在的可能,只是可能性大小不同


对于一个文档片段d=w1w2…wn,统计语言模型是指概率P(w1w2…wn)求解,根据Bayes公式,有:

P(w1w2...wn) = P(w1)P(w2...wn|w1) = P(w1) {P(w2|w1) * P(w3|w2w1) * ... P(wn|wn-1...w1)}

其中P(wn|wn-1...w1)中的P(wn-1...w1)为历史,按照历史可分为下列模型:

1. 无历史,一元模型

2. 最近一个历史,二元模型(Bigram)

3. 最近N-1个历史,N元模型(N-gram)

类似于打扑克中的出牌策略,只根据当前牌出牌,则为一元模型,根据上一轮牌出牌,为二元模型,...


不同模型的例子:

一元模型(unigram):P(w1w2w3w4) = P(w1)P(w2)P(w3)P(w4)

二元模型(bigram ):P(w1w2w3w4) = P(w1)P(w2|w1 )P(w3|w2)P(w4|w3 )

三元模型(trigram):P(w1w2w3w4) = P(w1)P(w2|w1)P(w3|w1w2)P(w4|w2w3)


对于n-gram,n越大,则模型越复杂估计的参数(即估计的概率)也越多。当然,当数据量足够大的情况下,模型阶数越高越对片段概率的计算也越准确。


SLM的一个应用例子

拼音输入法(以下例子中将字看成语言单位):

输入zhong guo ke xue yuan,到底是:种过科雪园?重果可薛原?还是中国科学院?……

一种利用SLM的解决思路:计算P(种过科雪园) P(重果可薛原)P(中国科学院),看谁大!(为简单起见,这里计算没有考虑拼音,实际上是计算P(种过科雪园| zhong guo ke xue yuan) )

一元模型(Unigram):

P(种过科雪园)=P(种) P(过) P(科) P(雪) P(园)

P(重果可薛原)=P(重) P(果) P(可) P(薛) P(原)

P(中国科学院)=P(中) P(国) P(科) P(学) P(院)

训练:在训练语料库中估计以上各P(X)的值


二元模型(Bigram): P(中国科学院)=P(中)P(国|中)P(科|国)P(学|科)P(院|学),等价于一阶马尔科夫链(Markov Chain)

三元模型(Trigram):P(中国科学院)= P(中)P(国|中)P(科|中国)P(学|国科) P(院|科学)

根据语料,估计所使用模型的参数,然后在搜索空间中搜索概率最大的语言片段。

理论上说,在数据充足的情况下,利用更多的历史(高阶)的模型更准确,但是总计算量也越大。数据规模总是有限的,即用于训练模型参数的语料存在稀疏性(Data  Sparseness,即某参数在训练语料中没有出现)

问题。如二元模型中,在训练语料中恰巧没有出现“国科组合”。

数据稀疏性导致零概率问题,上述稀疏性情况下,如果直接计算,那么P(中国科学院)=0,但是在训练集上不出现的事件并不代表在新的语料上不出现。


SLM的一个重要工作就是进行平滑(Smoothing):重新分配概率,即使没出现的事件也会赋予一个概率。