用LSTM进行情感分析原理

用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. 长短期记忆网络(LSTM)概述 长短期记忆网络是一种特殊的循环神经网络(RNN),它通过引入门控机制解决了传统RNN中存在的梯度消失或爆炸问题[^2]。这种特性使得LSTM能够在处理长时间序列数据时仍然保持有效的学习能力。 #### 2. 情感分析的任务特点 情感分析通常涉及对一段文本的情感倾向进行分类,例如正面、负面或中立情绪。这类任务的特点在于需要捕捉到句子中不同词语之间的依赖关系以及上下文信息。对于某些复杂的语句结构,可能还需要考虑较远距离的信息关联。 #### 3. LSTM如何应用于情感分析 当应用LSTM情感分析时,主要利用的是其能够有效捕获长期依赖的能力: - **词嵌入表示** 文本首先会被转换成数值形式的向量表示,这一过程通常是借助预训练好的词嵌入模型完成,比如Word2Vec或GloVe。这些词向量作为输入传递给LSTM层。 - **序列建模与特征提取** LSTM通过对时间步上的隐藏状态不断更新来记录历史信息,并决定哪些部分应该保留下来而哪些可以忽略掉。具体来说,在每一步操作过程中,有三个核心组件参与其中——即输入门(input gate)、遗忘门(forget gate),还有输出门(output gate)[^3]。它们共同决定了当前时刻的状态值h_t该如何基于前一时刻的状态h_{t−1}以及新的输入x_t来进行调整。 - 如果某个特定单词非常重要,则可以通过设置较高的权重让该位置对应的单元格激活程度加大; - 对于那些不那么关键的内容则允许一定程度上的衰减直至完全丢弃; - **最终预测阶段** 经过若干轮迭代之后得到整个句子层面的整体表达H=[h_1,h_2,…,h_n],再经过全连接层映射至类别空间即可得出最后的结果标签y_hat. 需要注意的一点是尽管理论上讲LSTM具备很强的记忆力,但在实际应用场景下强行要求记住过多细节反而可能导致泛化性能下降甚至失败的情况发生因此合理设计架构参数显得尤为重要[^1]. ```python import tensorflow as tf from tensorflow.keras.layers import Embedding, LSTM, Dense model = tf.keras.Sequential([ Embedding(vocab_size, embedding_dim), LSTM(units=64, dropout=0.2, recurrent_dropout=0.2), # Adding an LSTM layer with dropout regularization. Dense(1, activation='sigmoid') # Output layer for binary classification (positive/negative sentiment). ]) # Compile the model specifying optimizer and loss function suitable for binary classifications tasks. model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) ``` 上述代码片段展示了一个简单的Keras实现版本,展示了如何构建一个基本的二元情感分类器。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值