1. Introduction
语言模型的目标就是compute the probability of a sentence or sequence of words:
数学公式很简单,给定一个包含l个词语
=p(w1)p(w2|w1)p(w3|w1,w2)...p(wl|w1,w2,...,wl−1)
若是计算上述公式中每个p(wl|w1,w2,...,wl−1),参数空间过大造成数据稀疏严重。一般采用马尔科夫假设(Markov Assumption):下一个词的出现仅依赖于它前面的k个词,即
若
-下一个词的出现只依赖它前面的一个词,即为Bigram model:
p(wi|w1,w2,...,wi−1)=p(wi|wi−1);
-下一个词的出现依赖它前面的两个词,即为Trigram model:
p(wi|w1,w2,...,wi−1)=p(wi|wi−2,wi−1)
对于上述简化假设,我们称之为N元语言模型(n-Gram),一般来说,其计算公式为:
P(W)=∏l+1i=1p(wi|wi−1i−n+1)
其中wji表示词语序列wi,...,wj
2. Estimating N-gram Probabilities
构造使用语言模型的第一步就是生成每个条件概率p(wi|wi−1i−n+1), 通常使用最大似然估计(Maximum Likelihood Estimate), 即
p(wi|wi−1)=count(wi−1,wi)/count(wi−1)
其中count(wi−1,wi)为词组wi−1,wi的出现频率。
3. Performance Evaluation
一般评价语言模型的性能采用迷惑度/困惑度/混乱度(perplexity),计算公式为:
PP(W)=2H(W)
H(W)=−1llog2P(W)
其中l为句子W的长度,一般来说Lower perplexity = better model