语言模型
现在有一个语料库,它是某种语言中一系列句子的集合,现在我们要从中构建出一个语言模型,并进行参数估计。语言模型(Language Modeling)是用来计算一个句子出现的概率的模型。
定义
令词典 V 为该语言中所有单词的集合。如:如果要为英语构建一个语言模型,则:
V={the, dogs, laughs, saw, barks, cat, ...}
V 有可能非常大,毕竟它可能包含成千上万个单词,但它通常都是一个有限集。
一个句子就是一个单词序列:
x1x2...xn
其中 xi∈V,i∈{1...(n−1)},n≥1。假设 xn 是一个特殊的符号 STOP(STOP∈/V),如:
- the cat saw the dog STOP
- the STOP
- STOP
令 V+ 为由词典 V 产生的所有句子,这是一个无限集,因为句子可以是任意长度。
则定义 1.1(语言模型):
语言模型由一个有限集 V 和一个函数 p(x1,x2,...,xn) 组成,其中:
- 对任意的 ⟨x1,x2,...,xn⟩∈V+, p(x1,x2,...,xn)≥0
- ∑⟨x1,x2,...,xn⟩∈V+p(x1,x2,...,xn)=1
因此 p(x1,x2,...,xn) 是 V 中的所有句子的概率分布。
一种简单(但不怎么样)的从训练语料库中构建语言模型的方法可以为:令 c(x1,x2,...,xn) 为训练数据中句子 x1x2...xn 出现的次数,N 为训练数据里句子总数,则:
p(x1,x2,...,xn)=Nc(x1,x2,...,xn)
这个模型不怎么样,因为如果某个句子没有在训练数据里出现过,那么该模型会将它的概率设为 0。因此本章将讨论一些能处理训练数据中没出现过的句子的方法。
参考
- Language Modeling (Notes). Michael Collins. Columbia University.
- Language Modeling (Slides). Michael Collins. Columbia University.
- A Bit of Progress in Language Modeling. Joshua T. Goodman. Computer Speech & Language 2001.