语言模型

现在有一个语料库,它是某种语言中一系列句子的集合,现在我们要从中构建出一个语言模型,并进行参数估计。语言模型(Language Modeling)是用来计算一个句子出现的概率的模型。

定义

令词典 为该语言中所有单词的集合。如:如果要为英语构建一个语言模型,则:

有可能非常大,毕竟它可能包含成千上万个单词,但它通常都是一个有限集。

一个句子就是一个单词序列:

其中 。假设 是一个特殊的符号 STOP),如:

  • the cat saw the dog STOP
  • the STOP
  • STOP

为由词典 产生的所有句子,这是一个无限集,因为句子可以是任意长度。

定义 1.1(语言模型)

语言模型由一个有限集 和一个函数 组成,其中:

  • 对任意的

因此 中的所有句子的概率分布。


一种简单(但不怎么样)的从训练语料库中构建语言模型的方法可以为:令 为训练数据中句子 出现的次数, 为训练数据里句子总数,则:

这个模型不怎么样,因为如果某个句子没有在训练数据里出现过,那么该模型会将它的概率设为 0。因此本章将讨论一些能处理训练数据中没出现过的句子的方法。

参考

  1. Language Modeling (Notes). Michael Collins. Columbia University.
  2. Language Modeling (Slides). Michael Collins. Columbia University.
  3. A Bit of Progress in Language Modeling. Joshua T. Goodman. Computer Speech & Language 2001.