一段自然语言文本可以看做是一个离散时间序列s=ω1,ω2,⋯ ,ωTs=\omega_1,\omega_2,\cdots,\omega_Ts=ω1,ω2,⋯,ωT,而一个语言模型的作用是构建这个时间序列的概率分布P(s)P(s)P(s)。概率计算公式可以表示为:
KaTeX parse error: No such environment: align* at position 8:
\begin{̲a̲l̲i̲g̲n̲*̲}̲
P(s)&=P(\omega…
假设词汇表大小为VVV,由上式可以看到,产生第iii个词ωi\omega_iωi的概率是由已经产生的i−1i-1i−1个词ω1,ω2,⋯ ,ωi−1\omega_1,\omega_2,\cdots,\omega_{i-1}ω1,ω2,⋯,ωi−1决定的,那么我们必须考虑所有Vi−1V^{i-1}Vi−1种不同历史情况下,产生第iii个词的概率。这样模型中就会有ViV^iVi个自由参数。这在实际中几乎是无法从训练数据中估计出这些参数的。因此需要引入语言模型来降低参数个数。
语言模型有基于统计模型的,比如n元语法(n-gram),也有基于神经网络的。
n元语法(n-grams)是基于n-1阶马尔科夫链的概率语言模型,也即
P(ω1,ω2,⋯ ,ωT)=∏t=1TP(ωt∣ωt−(n−1),ω2,⋯ ,ωt−1)(2-1)
P(\omega_1,\omega_2,\cdots,\omega_T)=\prod_{t=1}^{T}P(\omega_t|\omega_{t-(n-1)},\omega_2,\cdots,\omega_{t-1})\\\tag{2-1}
P(ω1,ω2,⋯,ωT)=t=1∏TP(ωt∣ωt−(n−1),ω2,⋯,ωt−1)(2-1)
由上式可知,在n-gram模型中,一个词的出现概率只与前面n-1个词有关。
n元语法模型可能的缺陷:
参数空间过大 数据稀疏