语言模型
语言模型起源于语音识别(speech recognition),输入一段音频数据,语音识别系统通常会生成多个句子作为候选,究竟哪个句子更合理?就需要用到语言模型对候选句子进行排序。
语言模型:对于任意的词序列,它能够计算出这个序列是一句话的概率。
能够计算的模型就是语言模型,其中为单词。
N-gram语言模型
N-gram语言模型是NLP时代最流行的一种。
N-gram模型是一种语言模型(Language Model,LM),语言模型是一个基于概率的判别模型,它的输入是一句话(单词的顺序序列),输出是这句话的概率,即这些单词的联合概率(joint probability)。
1、马尔可夫假设:每个词只依赖前n个词
2、贝叶斯定理
3、极大似然估计求解
求解:
因此:
我们也可以引入二阶马尔可夫假设:每个词依赖前两个词
此时,
有了马尔可夫假设,就可以方便的计算条件概率。接下来我们看一下什么是N-gram 语言模型?
以N=3的tri-gram语言模型为例,它使用二阶马尔可夫假设,
其中count(*)表示*在训练集中出现的次数。
- 使用N-1阶马尔可夫假设简化后验概率 p,提高模型的泛化能力
- 使用数数法计算后验概率 p
例子1:
下面是从这个语料库中计算出的概率:
例子2:
以下是一些其他有用的概率:
现在我们可以计算出像“我想要英国食物”或“我想要英国食物”这样的句子的概率:
参考: