文章目录
- 一、定义
- 二、数据平滑
- 三、基于词类的N-gram模型
- 四、统计语言模型的评价标准
- 五、统计语言模型的不足之处
一、定义
这样的方法存在两个致命的缺陷:
- 參数空间过大:条件概率P(wn|w1,w2,…,wn-1)的可能性太多,无法估算,不可能有用;
假设模型训练的词表为V,采用N元模型,则理论上的参数空间大小为|V|的N次方(考虑词的组合)。 - 数据稀疏严重:对于非常多词对的组合,在语料库中都没有出现,依据最大似然估计得到的概率将会是0。
N-gram
模型
由于数据稀疏和系统处理能力的限制,引入了马尔科夫假设:随意一个词出现的概率只与它前面出现的有限的一个或者几个词有关。
简单来说,只考虑长度为n-1的历史窗口。通常采用tri-gram和bi-gram。
语言模型参数训练系统
参数估计
极大似然估计即可,举例(bi-gram):P(朋友|漂亮) = c(漂亮,朋友)/c(漂亮)
Zipf统计定律
对于大量的低频词
(N元对)来说,无论训练语料库的规模如何扩大,其出现频度依然很低
或根本不出现
,无法获得其足够的统计特性,用于可靠的概率估计。
所以直接根据频度对N-gram概率进行极大似然性估计是不可取的。
二、数据平滑
目的:对根据极大似然估计原则得到的概率分布进一步调整,确保统计语言模型中的每个概率参数均不为零
,同时使概率分布更加趋向合理、均匀
平滑技术:
- 加法平滑
- Good-Turing估计
- 回退平滑
- 线性插值
- 类模型、变长N-gram模型等
加法平滑
其中δ∈(0, 1],分子表示每个N元对加上一个δ防止为0,分母保证归一性。
Good-Turing估计
想法是对出现次数的值进行一些改动,r+1保证不为0。这里计算概率的结果感觉是把所有出现次数相同的N元对一视同仁了,视作一个大类。
回退平滑
回退平滑采用分段计算,如果本身频度够大,直接MLE,稍微小点的用Good-Turing估计,如果=0了,退化到更低一元的模型。这里的回退指的是c=0时采用递归。
线性插值平滑
加权+递归的感觉,N-gram模型可以递归地定义为由最大似然估计原则得到的N-gram模型和(N-1)-gram模型的线性插值。
举例:
三、基于词类的N-gram模型
设Ci为词wi所属的类,多种基于类的模型结构可被使用。典型地,一个Tri-gram可选择如下计算方法:
看这个式子感觉就是把w1,w2想成归属的类C1,C2
类模型提出的意义
- 降低模型参数的规模
- 数据稀疏问题的一种解决方式
构造方法
感觉这小块介绍地不是很详细,可以稍微了解一下,还是上述那种类模型的想法。
- 采用语言学家构造的词的语法分类体系,按词性( Part of Speech )进行词类划分,借助于词性标注技术,构造基于词性的 N-POS 模型。
- 采用词的自动聚类技术,自动构造基于词的自动聚类的类 N-gram 模型。
几种模型的比较
- 基于词的 N-gram 模型对
近邻的语言约束关系
的描述能力最强
,应用程度最为广泛
。一般 N<=3难以描述长距离的语言约束关系。 - N-POS 模型的
参数空间最小
,一般不存在数据稀疏问题
,可以构造高元模型,用于描述长距离
的语言约束关系。但由于词性数目过少,过于泛化
,因此又限制了语言模型的描述能力
- 自动聚类生成的词类数量介于词和词性的数量之间,由此建立的类 N-gram 模型,
既不存在严重的数据稀疏问题,又不存在过于泛化问题
。
四、统计语言模型的评价标准
信息熵(entropy):语言模型的不确定性可以用信息熵来衡量,熵越大,模型的不确定性越大,正确估计语言现象的可能性就越小。
模型复杂度(perplexity):给测试集的句子赋予较高概率值的语言模型
较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好,公式如下:
由公式可知,句子概率越大,语言模型越好,迷惑度越小。
这一部分公式啥的有点多,想进一步了解参考https://www.zhihu.com/question/58482430
五、统计语言模型的不足之处
- 统计语言建模技术很少使用真实的语言知识
- 跨领域的适应能力差
- 不能很好地处理长距离语言约束
- 与西方语言相比,汉语的结构更复杂,并且存在独特的分词和生词处理问题