引言

需求分析,技术可行性(目前的研究进度),主流怎么做?我要如何做?
随着互联网技术的飞速发展及联网的便捷,越来越多的人在网上表达自己的意见。其中,电影评论受到广泛关注。很多人选择在闲暇时间观看电影,选择哪一部电影则常常受到网上评论的影响。然而电影评论主观性较强,个体化倾向明显,单个评论不具备可参考性,因此需要对大量的影评进行综合性的情感分析。
情感分析是自然语言处理领域的一个重要分支。在社交媒体中,评论文本的数量呈指数级增长,必须采用智能处理方式。目前的情感分析主要是基于机器学习的方法,基于CNN(Convolutional Neural Network,卷积神经网络)、RNN(Recurrent Neural Network,循环神经网络)等神经网络的处理比传统的方法取得了更高的准确率。文本分析属于典型的时序数据处理问题,因此本文采用改进的RNN网络BiL-STM(Bidirectional Long-short Term Memory Network,双向长短时记忆网络)对电影评论进行情感分析

模型介绍

LSTM及BiLSTM

指出RNN的缺陷:
RNN一般用来处理序列信息,在文本、语音、视频等具有上下文关联的应用场景中精度很高。其展开结构如图 1 所示。但是RNN会面临梯度消失和梯度爆炸的问题,这将导致长时依赖丢失。为解决这个问题,LSTM网络对RNN进行了改进。

提出RNN变体LSTM
LSTM 由遗忘门、输入门和输出门三个控制门组成,如图2所示。遗忘门控制上一时刻的单元状态Ct-1有多少保留到当前状态Ct,输入门控制当前时刻的网络输入Xt有多少保存到单元状态Ct,输出门控制单元状态Ct有多少输出
到LSTM网络的当前输出ht。图2中σ表示sigmoid函数,其取值范围是[0-1],决定了门控制器能够通过信息的比例。sigmoid取值为1时,表示所有信息都能通过,完全保留这一分支的记忆,取值为0时,表示没有信息能够通过,即所有信息全部遗忘。LSTM网络的主要计算公式如下:

ft = σ ( wt ⋅[ ht - 1,xt] + bf ) (1)
it = σ ( wi ⋅[ ht - 1,xt] + bi) (2)
c’t = tanh( wc ⋅[ ht - 1,xt] + bc) (3)
ct = ft × ct - 1 + it × c’t (4)
ot = σ ( wo ⋅[ ht - 1,xt] + bo) (5)
ht = ot × tanh( ct) (6)

再次指出LSTM的缺陷,提出自己的想法:BiLSTM
从图2可以看到,LSTM网络只能利用前文信息。例如句子“我吃苹果”,处理分词“吃”时,LSTM只考虑前一个分词“我”,这显然是不够的,其后面的分词“苹果”对吃具有更重要的影响。双向LSTM应运而生,BiLSTM从两个方向同时读取文本,这样就可以充分利用当前时刻数据的所有上下文信息。

如图 3 所示 ,BiLSTM 构建了两个方向相反的LSTM层,正向计算时,t时刻的隐藏状态与t-1时刻有关,反向计算时,与t+1时刻有关,网络的最终隐藏状态向量由两个方向的隐藏状态组合生成。组合方式可拼接、加权求和或求平均。设X2为当前时刻的输入单元,A2为正向传播通道上该单元的隐藏状态,由前一时刻的隐藏状态 A1和当前输入 X2共同决定,A2'是反向传播通道上的隐藏状态,由下一时刻的隐藏状态A3'和X2共同决定,输出y2是A2和A2'加权和
的函数。
BiLSTM的实现方法非常简单[6]。**只需堆叠两层LSTM,其中一层将数据集原样输入,相当于按正向传递信息。另一层则将数据集翻转后输入,按反向传递信息。**例如处理数字序列“1、2、3、4”,正向传播层接收数据本身,反向传播层接收“4、3、2、1”,即可同时有效提取过去和未来的上下文信息。

Dropout机制

对于规模大、训练参数较多的神经网络来说,非常容易发生过拟合现象。过拟合是指模型在训练数据上损失函数小,预测准确率高,但是在测试数据上损失函数大,预测准确率低,也就是模型的泛化能力太差。最初解决过拟合问题的
方法是训练多个模型做组合,但这也带来了模型过于复杂和费时的问题。受此启发,Hinton 等人在 2012 年推出了 Standard Dropout 方法 ,之后 Dropout 又发展出了多个变种。Dropout是指在规模较大的神经网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,如图4所示。每轮迭代训练时,都按一定的概率抛弃不同的神经元,这就相当于在一个网络上同时训练了多个模型,提高了泛化能力,能够有效抑制过拟合。抛弃神经元的概率不宜过大,否则会造成重点特征丢失,一般设置在 0.3~0.5 之间。Dropout机制最初用在密集度较大的深度神经网络,但后来发现在卷积和循环神经网络中作用也很显著。

算法设计及实验结果

模型搭建

本实验的算法设计基于Keras平台实现,模型搭建如图4所示。首先是Embedding层,该层负责将文本数据转化为单词向量,为防止过拟合,其上叠加Dropout层,然后是BiLSTM层,也叠加Dropout,最后通过Sigmoid层进行情感分类。

数据集划分

本文采用IMDB电影评论数据集,该数据集包含5万条电影评论,一半划分为训练数据,一半划分为测试数据。每条数据根据正、负面倾向标注“positive”和“negative”。由于每条评论的单词数量不等,统一预处理为400个单词,即超过
400个单词进行截断,不足400的填零补足。字典大小设置为 4000。Embedding 层的输出设置为 36,即每个单词通过Embedding转化为36维的密集向量。模型中各参数设置如表1所示。

模型训练与对比实验

模型训练采用二进制交叉熵binary crossentropy作为损失函数,优化器选用Adam算法。为了对比,实验共进行了三次,第一次为上述模型 BiLSTM 加 Dropout,第二次仅使用BiLSTM,不采用 Dropout,第三次仅使用单向 LSTM。每个epoch 的损失率和准确率曲线如图 5 所示。最后一个 epoch
的具体数据如表 2 所示。另外,进行了基于单向LSTM 的 IMDB 数据集的分析实验并与其他算法进行了比较,如表3所示。从测试数据集的分析效果来看,本算法的BiLSTM加Dropout的效果是最好的。


结语

本文实验表明,BiLSTM 结合 Dropout 机制的算法在电影评论情感分析的应用中准确率很高。但来自各种网站的评论数据有表达不完善、不准确等复杂问题,本实验将进一步完善算法的先进性,提高分析准确率。IMDB数据集是较为标准的英文电影评论数据集,下一步工作可以分析中文数据集、在豆瓣等社交网络爬取数据,制作更加广泛和贴近真实的电影评论数据集,验证算法的实际应用效果。另外,本文也验证了BiLSTM处理时序数据的有效性,下一步工作也将探索该算法在复杂文本、语音、视频处理等领域的应用。

基于双向LSTM的影评情感分析算法设计学习记录相关推荐

  1. python毕业设计开题报告-基于python爬虫的影评情感分析研究开题报告

    论文(设计)题目 基于python爬虫的影评情感分析研究开题报告 选题的背景.意义及研究现状: 研究现状: 文本情感分析又称倾向性分析.情感挖掘,主观分析或评论挖掘,是对带有情感色彩的评论文本内容进行 ...

  2. [NLP]基于IMDB影评情感分析之BERT实战-测试集上92.24%

    系列文章目录 深度学习NLP(一)之Attention Model; 深度学习NLP(二)之Self-attention, Muti-attention和Transformer; 深度学习NLP(三) ...

  3. 【毕业设计_课程设计】基于机器学习的情感分类与分析算法设计与实现(源码+论文)

    文章目录 0 项目说明 1 研究目的 2 研究方法 3 研究结论 4 项目流程 4.1 获取微博文本 4.2 SVM初步分类 4.3 使用朴素贝叶斯分类 4.4 AdaBoost 4.4.1 二分类A ...

  4. 基于词典的中文情感倾向分析算法设计

    基于词典的中文情感倾向分析算法设计 https://site.douban.com/146782/widget/notes/15462869/note/355625387/   情感倾向可认为是主体对 ...

  5. 情感分析算法从原理到PaddlePaddle实战全解

    在自然语言处理中,情感分析一般是指判断一段文本所表达的情绪状态.其中,一段文本可以是一个句子,一个段落或一个文档.情绪状态可以是两类,如(正面,负面),(高兴,悲伤):也可以是三类,如(积极,消极,中 ...

  6. 520礼包 | 情感分析算法从原理到PaddlePaddle实战全解

    允中 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在自然语言处理中,情感分析一般是指判断一段文本所表达的情绪状态.其中,一段文本可以是一个句子,一个段落或一个文档.情绪状态可以是两类,如(正 ...

  7. 基于双向LSTM和迁移学习的seq2seq核心实体识别

    http://spaces.ac.cn/archives/3942/ 暑假期间做了一下百度和西安交大联合举办的核心实体识别竞赛,最终的结果还不错,遂记录一下.模型的效果不是最好的,但是胜在" ...

  8. 猿创征文丨深度学习基于双向LSTM模型完成文本分类任务

    大家好,我是猿童学,本期猿创征文的第三期,也是最后一期,给大家带来神经网络中的循环神经网络案例,基于双向LSTM模型完成文本分类任务,数据集来自kaggle,对电影评论进行文本分类. 电影评论可以蕴含 ...

  9. 基于IMDB评论数据集的情感分析

    文章目录 前言 一.大型电影评论数据集介绍 二.环境配置 三.实验模型及流程 1.实验模型 2.实验流程 四.实验代码 1.多层感知器模型代码 2.递归神经网络模型代码 3.长短期记忆模型代码 五.实 ...

最新文章

  1. Python数据处理篇之Matplotlib系列(六)---plt.hist()与plt.hist参数详解
  2. 性能压测,SQL查询异常
  3. JAVA深入研究——Method的Invoke方法。
  4. VS2015 打包winform 安装程序
  5. Unity应用架构设计(6)——设计动态数据集合ObservableList
  6. linux的kerne启动过程,linux
  7. [Jinkey 原创]震惊!iOS 系统居然自带悬浮窗口调试工具
  8. 小案例:编写立方体六个面,合成一张全景图后端
  9. 会议交流 | CCKS2020 第十四届全国知识图谱与语义计算大会
  10. Java知识点总结(Java容器-ArrayList)
  11. 配置tomcat 7控制台账号
  12. Linux静态库、动态库的制作
  13. 古风素材无水印免费下载
  14. MATLAB编程实例
  15. 物联网智能空气环境监测系统解决方案
  16. 鱼眼镜头的成像原理到畸变矫正(完整版)
  17. 浦发银行计算机抓紧用面试题目,浦发银行面试问题
  18. 我整理了50道经典Java算法题,直接进了字节跳动!!
  19. 【Java面试题】List如何一边遍历,一边删除?
  20. Java实现台阶问题

热门文章

  1. 深圳科技园的素质(大多数)
  2. 如何合并多个Excel文件(相同列结构)至一个Excel文件中
  3. VMware虚拟机之安装VMware虚拟机平台
  4. 电赛知识点总结13:锁定放大器
  5. 解析conf配置文件的c++神器
  6. iso体系认证需要什么材料
  7. 三菱FX3UPLC通过指令与A700变频器通讯
  8. CAN301 移动计算 个人笔记
  9. STM32--解析GPS数据包代码
  10. Mac下安装Carthage