用LSTM进行情感分析原理

深度学习在自然语言处理中的应用

自然语言处理是教会机器如何去处理或者读懂人类语言的系统,主要应用领域:

  • 对话系统 - 聊天机器人(小冰)
  • 情感分析 - 对一段文本进行情感识别(我们一会要做的)
  • 图文映射 - CNN和RNN的融合
  • 机器翻译 - 将一种语言翻译成另一种语言,谷歌翻译已经很好

词向量模型

词向量是具有空间意义的并不是简单的映射!例如,我们希望单词 “love” 和 “adore” 这两个词在向量空间中是有一定的相关性的,因为他们有类似的定义,他们都在类似的上下文中使用。单词的向量表示也被称之为词嵌入。

Word2Vec

为了去得到这些词嵌入,我们使用一个非常厉害的模型 “Word2Vec”。简单的说,这个模型根据上下文的语境来推断出每个词的词向量。如果两个个词在上下文的语境中,可以被互相替换,那么这两个词的距离就非常近。在自然语言中,上下文的语境对分析词语的意义是非常重要的。比如,之前我们提到的 “adore” 和 “love” 这两个词,我们观察如下上下文的语境。

从句子中我们可以看到,这两个词通常在句子中是表现积极的,而且一般比名词或者名词组合要好。这也说明了,这两个词可以被互相替换,他们的意思是非常相近的。对于句子的语法结构分析,上下文语境也是非常重要的。所有,这个模型的作用就是从一大堆句子(以 Wikipedia 为例)中为每个独一无二的单词进行建模,并且输出一个唯一的向量。Word2Vec 模型的输出被称为一个嵌入矩阵。

Word2Vec 模型根据数据集中的每个句子进行训练,并且以一个固定窗口在句子上进行滑动,根据句子的上下文来预测固定窗口中间那个词的向量。然后根据一个损失函数和优化方法,来对这个模型进行训练

Recurrent Neural Networks (RNNs)

现在,我们已经得到了神经网络的输入数据 —— 词向量,接下来让我们看看需要构建的神经网络。NLP 数据的一个独特之处是它是时间序列数据。每个单词的出现都依赖于它的前一个单词和后一个单词。由于这种依赖的存在,我们使用循环神经网络来处理这种时间序列数据。

循环神经网络的结构和你之前看到的那些前馈神经网络的结构可能有一些不一样。前馈神经网络由三部分组成,输入层,隐藏层和输出层。

前馈神经网络和 RNN 之前的主要区别就是 RNN 考虑了时间的信息。在 RNN 中,句子中的每个单词都被考虑上了时间步骤。实际上,时间步长的数量将等于最大序列长度

与每个时间步骤相关联的中间状态也被作为一个新的组件,称为隐藏状态向量 h(t) 。从抽象的角度来看,这个向量是用来封装和汇总前面时间步骤中所看到的所有信息。就像 x(t) 表示一个向量,它封装了一个特定单词的所有信息。

隐藏状态是当前单词向量和前一步的隐藏状态向量的函数。并且这两项之和需要通过激活函数来进行激活。

Long Short Term Memory Units (LSTMs)

长短期记忆网络单元,是另一个 RNN 中的模块。从抽象的角度看,LSTM 保存了文本中长期的依赖信息。正如我们前面所看到的,H 在传统的RNN网络中是非常简单的,这种简单结构不能有效的将历史信息链接在一起。举个例子,在问答领域中,假设我们得到如下一段文本,那么 LSTM 就可以很好的将历史信息进行记录学习。

在这里,我们看到中间的句子对被问的问题没有影响。然而,第一句和第三句之间有很强的联系。对于一个典型的RNN网络,隐藏状态向量对于第二句的存储信息量可能比第一句的信息量会大很多。但是LSTM,基本上就会判断哪些信息是有用的,哪些是没用的,并且把有用的信息在 LSTM 中进行保存。

我们从更加技术的角度来谈谈 LSTM 单元,该单元根据输入数据 x(t) ,隐藏层输出 h(t) 。在这些单元中,h(t) 的表达形式比经典的 RNN 网络会复杂很多。这些复杂组件分为四个部分:输入门,输出门,遗忘门和一个记忆控制器。

每个门都将 x(t) 和 h(t-1) 作为输入(没有在图中显示出来),并且利用这些输入来计算一些中间状态。每个中间状态都会被送入不同的管道,并且这些信息最终会汇集到 h(t) 。为简单起见,我们不会去关心每一个门的具体推导。这些门可以被认为是不同的模块,各有不同的功能。输入门决定在每个输入上施加多少强调,遗忘门决定我们将丢弃什么信息,输出门根据中间状态来决定最终的 h(t) 。

文档好多博主都有发见https://blog.csdn.net/duanlianvip/article/details/103584543

代码见https://blog.csdn.net/sereasuesue/article/details/108693854

用LSTM进行情感分析原理相关推荐

  1. 【自然语言NLP】TensorFlow使用LSTM实现情感分析任务

    自然语言情感分析 众所周知,人类自然语言中包含了丰富的情感色彩:表达人的情绪(如悲伤.快乐).表达人的心情(如倦怠.忧郁).表达人的喜好(如喜欢.讨厌).利用机器自动分析这些情感倾向,不但有助于帮助企 ...

  2. 【NLP】使用堆叠双向 LSTM 进行情感分析

    作者 | SRIVIGNESH_R  编译 | Flin   来源 | analyticsvidhya 情绪分析 情感分析是发现文本数据的情感的过程.情感分析属于自然语言处理中的文本分类.情绪分析将帮 ...

  3. 使用双向LSTM进行情感分析详解

    一.原理简介 RNN能够记忆上下文信息,因此常常用来处理时间序列数据.虽然理论上RNN能够记忆无限长度的历史信息,但是由于梯度的累计导致计算量过大无法实际操作,因此在应用中实际上RNN只能记录前面若干 ...

  4. lstm训练情感分析的优点_LSTM对电影评论进行简单的情感分析

    今天自己尝试使用LSTM对电影评论进行简单的情感分析 代码中npy文件: 代码使用的数据集是IMDB,网盘地址: 首先读取已经做好的词向量模型 import numpy as np # 这里有两个表, ...

  5. 在 TensorFlow 上使用 LSTM 进行情感分析

    你可以从 Github 上面下载到所有的源代码. 在这篇教程中,我们将介绍如何将深度学习技术应用到情感分析中.该任务可以被认为是从一个句子,一段话,或者是从一个文档中,将作者的情感分为积极的,消极的或 ...

  6. 使用LSTM完成情感分析任务

    内容都是百度AIstudio的内容,我只是在这里做个笔记,不是原创. 借助长短时记忆网络,我们可以非常轻松地完成情感分析任务.如 图8 所示.对于每个句子,我们首先通过截断和填充的方式,把这些句子变成 ...

  7. lstm训练情感分析的优点_使用LSTM进行文本情感分析

    文本情感分析(Sentiment Analysis)是自然语言处理(NLP)方法中常见的应用,也是一个有趣的基本任务,尤其是以提炼文本情绪内容为目的的分类.它是对带有情感色彩的主观性文本进行分析.处理 ...

  8. 双向LSTM做情感分析

    1.LSTM层 Class torch.nn.LSTM(*args,**kwargs) # pytorch中的输入参数input_size – 数据的特征维度(使用embedding时就是指embed ...

  9. lstm训练情感分析的优点_NLP入门(十)使用LSTM进行文本情感分析

    情感分析简介 文本情感分析(Sentiment Analysis)是自然语言处理(NLP)方法中常见的应用,也是一个有趣的基本任务,尤其是以提炼文本情绪内容为目的的分类.它是对带有情感色彩的主观性文本 ...

最新文章

  1. docker omv 防火墙_OpenMediaVault(OMV)配置Docker
  2. 金泰联限量稳定虚拟主机赞助计划
  3. jQuery 基本操作
  4. Android客户端与服务器交互方式-小结
  5. java mysql实现原理_MySQL事务实现原理
  6. 探索SQL Server数据库的DATABASEPROPERTYEX()函数
  7. mysql 5.6 之 GTID 复制介绍
  8. 组件化,插件化和热更新
  9. FastJson之autotype bypass
  10. 亲测可用企业级自动发卡平台PHP系统源码
  11. 苹果ppt_苹果发布会PPT,为何总能惊艳到你
  12. python 下载图片 写硬盘 慢_天啦噜!知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍...
  13. 酷比魔方iwork1x i30双系统版,重装单Ubuntu 20.04系统记录(重力传感器、触摸屏、启动菜单、声卡问题、优化充电慢)
  14. python求一组数的最大值_用python实现在一组数据中,寻找到最大数和最小数并输出最大数和最小数所在的位置...
  15. 微信小程序如何将数据存储到服务器,微信小程序关于数据存储的一些坑
  16. 基于php和mysql实现的简易民航订票系统实验
  17. 消费心理学(04):价格锚点
  18. C语言打开中文路径文件
  19. 腾讯云主机linux(centos7)服务器基本操作和安装日志
  20. 怎样清除手机上的微信小程序的缓存?

热门文章

  1. js[mqtt线上环境报错net.createConnection is not a function]
  2. 名字测试匹配度软件,姓名测试缘分配对:测试两人关系匹配度是怎样的
  3. 蚁群优化算法的JAVA实现_优化算法|蚁群算法的理解及实现
  4. Java课程设计题目一:动物换位
  5. MSSQL2005+分组添加序号
  6. 拟合系数 / 决定系数 / R方 的两个公式理解
  7. Java 利用poi给word添加页眉页脚,页眉左边为公司logo图片,右为公司全称,页脚左为公司地址,右为页码总页数
  8. UE 极坐标、旋转、溶解、燃烧、查找边缘、浮雕、去色、抖动材质
  9. 数据库期末复习选择题整理
  10. ASP.NET(C#)图片加文字、图片水印(转)