统计语言模型

时间:2022-03-13 13:00:54

(一)  简介

1.      统计语言模型:用来计算一个句子的概率的模型;

2.      假设一个句子由T个单词顺序组成:

统计语言模型

那么该句子的联合概率如下:

统计语言模型

其中模型参数如下:

统计语言模型

根据贝叶斯公式可得:

统计语言模型

根据大数定理可得:

统计语言模型

其中count表示统计词串在语料中的出现次数,当k比较大时,上述计算比较耗时;

3.      常见的计算模型参数的方法有n-gram以及神经网络;

(二)  n-gram模型

1.      思想:一个词出现的概率只与前面n个词有关,也就是n-1阶的马尔科夫假设:

统计语言模型

统计语言模型

2.      过程:在语料中统计各种词串出现的次数,概率值计算之后就存储起来,下次需要计算一个句子的概率时,只需找到相关的概率参数,将它们连乘起来就好;

3.      优点:1)单个参数而言,统计变得简单;2)参数的总数变少;

(三)  神经网络模型

1.      简介:n-gram模型虽然方法简洁,但是需要事先计算以及保存大量的概率参数;因此可以将问题进行建模,构造目标函数形式如下:

统计语言模型

其中w表示单词,C表示语料,context表示上下文;因此问题的关键在于找到合适的函数来描述w与其上下文之间的关系:

统计语言模型

神经网络模型可以用来对w与其上下文的关系进行建模;

2.      神经网络模型

统计语言模型

(1)      context(w)一般定义为w的前n-1个词,因此每个二元对(context(w),w)表示一个样本;

(2)      每个样本总共有n-1个词,每个词假设向量为m维,那么输入层就有n-1个m维的词向量输入;

(3)      Projection Layer将n-1个词向量进行拼接,得到向量Xw;

(4)      模型函数如下:

统计语言模型

(5)      输出层的维数为N,也就是语料中的词汇数;

(6)      与传统的神经网络算法有所区别的是,这里的输入向量也就是词向量,也是需要训练得到的;