自然语言处理基础
目录
一:文本表示
1:词的独热表示
2:词的分布式表示
(1)最初分布式表示
(2):点互信息(PMI)
(3)奇异值分解(SVD)
3:词嵌入表示
4:文本你的词袋表示
二:自然语言处理任务
1:语言模型
(1)N元语言模型
(2)平滑
三大类自然语言处理任务:语言模型、基础任务、任务应用
基本任务可分为:文本分类、结构预测、序列到序列
一:文本表示
1:词的独热表示
缺点:无法表示语义关系,导致数据稀疏(很多0)
解决稀疏问题可以往向量中加入和词相关的泛化特征(词性特征、词义特征和词聚特征),以语义特征为例,引入WordNet等语义词典
什么是WordNet:WordNet介绍,一个开放知识图谱-CSDN博客
2:词的分布式表示
但是特征设计很费时,所以想设计一个可以自动提取特征并且设置特征值的方法
(1)最初分布式表示
根据每个词的上下文分布对词进行表示
I和like就有一定相似关性
也可以使用固定窗口作为共现矩阵的参与元素,这样可以表示词的局部特征,如果拿所在文档作为上下文参与元素那么获得的更多反应主题信息
缺点:
a. 高频词误导计算结果,例如I出现很多次那就和很多词语产生了相似关系
b. 共现频次无法反映词之间的高阶关系,例如A和B共现B和C共现,无法得知A和C也存在关系
c. 任然存在稀疏问题
(2):点互信息(PMI)
(3)奇异值分解(SVD)
大致就是通过保留奇异值对角矩阵里面的部分,达到降为的效果
奇异值分解 (Singular Value Decomposition,SVD) - sun-a - 博客园
缺点:
a. 奇异值分解运行速度慢,每次语料库更新就要重新计算。
b. 只能用于比较短的单元,长了的话共现上下文也会很少,就无法获得有效的分布式表示。
3:词嵌入表示
词嵌入表示使用向量来表示词,简称为词向量。和分布式表示类似,区别在于赋值方式。分布式向量值是通过对语料库进行统计得到的,但是词向量是随着目标任务的优化过程自动调整的。
4:文本你的词袋表示
词袋-Bag-Of-Words BOW
主要是解决通过词的表示构成更长文本的表示。
将文本中的全部词所对应的向量表示(可为独热可以为分布式)相加,构成文本的向量表示。
缺点:
a. 没有考虑词的顺序信息,“张三喜欢李四”、“李四喜欢张三”的词袋表示结果是一样的。
b. 无法融入上下文信息。
二:自然语言处理任务
1:语言模型
语言模型可以计算一个词序列或者一句话的概率
(1)N元语言模型
由来:某个词序列在某个语料库中一个序列出现的概率为
但是我们会发现,句子越长它的概率出现可能会变为0。
于是假设下一个词的出现的概率只依赖于它前面n-1个词,这个假设被称为马尔科夫假设
满足这种假设的模型叫做N元语法或者N元文法模型。
当n=1的时候,独立于其历史,被记做unigram,在unigram中由于词与词相互独立,因此他是和语序无关的。
当n=2的时候,下个词只依赖于前1个词,对应对的二元语法叫做bigram,二元语法模型也叫做一阶马尔科夫链。
(2)平滑
虽然马尔科夫假设降低了句子概率为0的几率,但是当n比较大或者出现未登录词(OOV)时仍然会出现0概率的情况。由于数据稀疏性,训练数据很难覆盖测试数据中所有可能出现的N-gram,但是并不意味着这些N-gram出现的概率就是0。所以我们采用平滑。
平滑算法:包括 折扣法(加1平滑法是折扣法的一种)等
折扣法:从频繁出现的N-gram中匀出一部分概率给低频次(包含0频次)的N-gram,从而使得整体概率分布趋于均匀。
加1平滑:它是一种典型的折扣法,也叫做拉普拉斯平滑。即假设所有的N-gram出现的频次都比实际出现的频次多1。缺点:当数据较小的时候,会给低频次(包含0频次)的N-gram过高的概率。
改进:加δ平滑,0<= δ<=1,δ为超参数。
(3)语言模型性能评价
为了进行内部测评,首先将数据集分为两个不相交的子集,训练集和测试集,其中训练集用于估计模型参数,由该模型计算出的测试集的概率反映了模型在测试集上的泛化能力。
困惑度(PPL),越小序列概率越大。