(一) 简介
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) 与传统的神经网络算法有所区别的是,这里的输入向量也就是词向量,也是需要训练得到的;