当前位置: 首页 > article >正文

自然语言处理基础

目录

一:文本表示

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),越小序列概率越大。


http://www.kler.cn/a/453623.html

相关文章:

  • 【只生一个好 - 单例设计模式(Singleton Pattern)】
  • 【服务端】灰度引擎的过程中如何保证数据的一致性?
  • 海外招聘丨 苏黎世联邦理工学院—机器学习在社会和政治科学中的应用博士后
  • K8s证书过期
  • 1075 链表元素分类
  • 前端网页开发学习(HTML+CSS+JS)有这一篇就够!
  • Git的.gitignore文件详解与常见用法
  • 新世纪的语言智能:GPT-5技术革新与市场前景展望
  • Vue2:v-for创建echart图表时不能使用动态ref,要使用动态id
  • python EEGPT报错:Cannot cast ufunc ‘clip‘ output from dtype(‘float64‘)
  • Go语言的defer原理
  • 【c语言】字符串与字符数组
  • spring cloud gateway 3
  • Elasticsearch-索引的批量操作
  • CentOS上安装和卸载Docker
  • UE5.3接入电脑USB摄像头实时预览画面
  • sentinel学习笔记7-熔断降级
  • 基于 Python 考研历年国家分数线大数据分析设计与实现
  • 利用Python实现排序算法与Web交互的实验项目
  • 【ARM】PK51关于内存模式的解析与区别
  • Python 端口访问邮件提醒工具
  • AndroidKMP跨平台开发基础1-编译发布
  • AWS、Google Cloud Platform (GCP)、Microsoft Azure、Linode和 桔子数据 的 价格对比
  • 解决 Node.js 单线程限制的有效方法
  • ssh免密登录服务器
  • C# Winfrom chart图 实例练习