1 用数学的方法描述语言规律
统计语言模型的产生的初衷是为了解决语音识别问题。
贾里尼克:一个句子是否合理,就看它的可能性大小如何。至于可能性就用概率来衡量。
马尔可夫:假设任意一个词出现的概率只同它前面的词有关。
2 统计语言模型的工程诀窍
2.1 高阶语言模型
N元模型:N - 1阶马尔可夫假设,假设文本中每个词和前面N-1个词有关,而与更前面的词无关。
二元模型:假设任意一个词出现的概率只同它前面的词有关。
一元模型:上下文无关的模型。
实际中应用最多的是N=3的三元模型,更高阶的模型就很少使用了。
为什么N取值一般都这么小呢?
N元模型的大小几乎是N的指数函数。当N从1到2, 再从2到3,模型效果上升明显。而模型从3到4时,效果的提升就很不明显了。
三元或四元甚至更高阶的模型是不是就能覆盖所有的语言现象呢?
答案是否定的。在自然语言中,上下文之间的相关性可能跨度非常大,甚至可以从一个段落跨到另一个段落。这是马尔可夫假设的局限性,这时就要采用其他一些长程的依赖性。
2.2 模型的训练、零概率问题和平滑方法
使用语言模型需要知道模型中所有的条件概率,我们称之为模型的参数。通过对语料的统计,得到这些参数的过程称作模型的训练。
统计的可靠性问题。大数定理。
如何正确的训练一个语言模型?
一个直接的方法就是增加数据量。即使如此,仍然会遇到零概率或者统计量不足的问题。
大部分条件概率依然是零,这种模型称之为“不平滑”。在实际应用中,统计语言模型的零概率问题是无法回避的,必须解决。
训练统计语言模型的艺术在于解决好统计样本不足时概率估计问题。
古德-图灵估计的原理:对于没有看见的事件,我们不能认为它发生的概率就是零,因此我们从概率的总量中分配一个很小的比例给这些没有看见的事件。
一般对出现次数超过某个阈值的词,频率不下调,只对出现次数低于这个阈值的词,频率才下调,下调的频率总和给未出现的词。这样所有的词的概率都很平滑了。
2.3 语料的选取问题
模型训练的另一个重要问题就是训练数据,或者说语料库的选取。如果训练语料和模型应用的领域相脱节,那么模型的效果往往会大打折扣。
训练数据通常是越多越好。高阶模型因为参数多,需要的训练数据也相应会多很多。
训练语料的噪音高低也会对模型的效果产生一定的影响。