基于GCN和句法依存分析的情感分析
内容速递
(1)论文实验分析可以画出混淆矩阵:
困惑矩阵能够帮助我们迅速可视化各种类别误分为其它类别的比重,这样能够帮我们调整后续模型,比如一些类别设置权重衰减!
在一些论文的实验分析中,可以列出困惑矩阵,行和列均为label种类,可以通过该矩阵验证自己model预测复杂label的能力强于其他model,只要自己model复杂label误判为其它类别比其他model误判的少,就可以说明自己model预测复杂label的能力强于其他model。
(2)选读这篇论文并不是说这篇写得很牛逼(相比顶会paper),而是对于菜鸡来说这篇比较好模仿,下一步是解读ACL的论文Graph Convolutional Networks for Text Classification(用于文本分类的图卷积网络)。
(3)如果仅将依存句法信息用于规则构造和特征抽取,那么句子中成分间的非线性语义关系便没有被学习和利用。所以本文:
- 依存句法分析图中的节点特征:结合LSTM和注意力机制,抽取的文本特征。
- 用GCN对(1)中生成的节点特征,和依存句法分析图的邻接矩阵进行训练。
- 输出负面情感类别(愤怒、厌恶、恐惧和悲伤)
文章目录
- 内容速递
- 论文简介
- 一、知识铺垫
- 1.1 GNN的应用模式
- 1.2 以往的方法
- 二、本文的研究方法:
- 三、模型思想
- 四、实验过程
- 五、优点和局限性
- 5.1 优点
- 5.2 局限性
- 六、下一阶段
- Reference
论文简介
一、知识铺垫
1.1 GNN的应用模式
(1)构建/利用图结构
核心问题:针对某个特定任务构建一个图来使用潜在的信息。
因为有些任务中,图数据是给定的(如引用网络、社交网络、推荐系统的图数据等),但是有些图结构并不明显,所以需要转为一个图上可以解决的问题(如节点分类、链路预测等)。
(2)图作为外部知识
虽然一些任务本身和图没有啥关系,但是可以找到一些图结构的辅助信息,如引入知识图谱等。ex:如药物交互图可以作为外部知识辅助药物推荐;实体关系图可以作为额外信息帮助阅读理解。
(3)创造新的图
如在NLP的文本生成,或者语义解析等任务中。
要生成文本 or 逻辑语言可以认为是一个图结构,所以需要一个基于图神经网络的解码器。
1.2 以往的方法
以往处理情感分析问题,虽然也用了深度学习的方法提取语义特征,但是文本中的句法结构信息(其实一种图数据)经常被忽略。如果仅将依存句法信息用于规则构造和特征抽取,那么句子中成分间的非线性语义关系便没有被学习和利用。
(2)Bastings 等[21]基于句子的依存句法树信息对句子中的词进行表示,之后利用GCN进行机器翻译任务。
二、本文的研究方法:
(1)依存句法分析图中的节点特征:结合LSTM和注意力机制,抽取的文本特征。
(2)用GCN对(1)中生成的节点特征,和依存句法分析图的邻接矩阵进行训练。
(3)输出负面情感类别(愤怒、厌恶、恐惧和悲伤)
三、模型思想
四、实验过程
(1)先用word2vec对舆情文本进行无监督训练,得到含语义信息的词向量,即文本表示l。
(2)对(1)得到的l句子,使用Bi-LSTM进行特征提取,获得隐含层特征(由正向和反向的LSTM抽取出的特征拼接而成)。
(3)在Bi-LSTM加入注意力机制:增强句子中的情感语义信息,提升因递归减少的捕捉长距离依赖的能力。PS:自注意力机制本质上是输入Query (Q ) 到一系列键值对( Key ( K ),Value (V ) ) 的映射函数。Q,K,V 分别是由查询向量、键向量、值向量构成的矩阵。
(4)如上图右边的依存句法树(的邻接矩阵),直接输入GCN模型,得到特征ziz_izi:zi=ReLU(D~−12AD~−12siWC)z_{i}=\operatorname{ReLU}\left(\tilde{D}^{-\frac{1}{2}} A \tilde{D}^{-\frac{1}{2}} s_{i} W_{C}\right) zi=ReLU(D~−21AD~−21siWC)
其中:
- ReLUReLUReLU是激活函数
- A为邻接矩阵
- D~\tilde{D}D~是A的度矩阵
- WCW_{C}WC是GCN中的权重矩阵
具体的栗子(从依存句法树转为邻接矩阵):
(5)对(4)得到的句子特征进行平均池化,再输入全连接层(激活函数为softmax),得到分类的情感label。
指标:准确率(Accuracy)、宏精确率(Macro_Precision)、宏召回值(Macro_Recall)和宏F1值(Macro_F1)作为模型的评估指标。
PS:其中隐藏层单元数和 GCN 的层数等超参数,作者进行调节分析,找到最佳值,如GCN层数, GCN 层数超过 3 时,模型性能出现较大回落,学习能力锐减。所以将GCN层数设置为1:
五、优点和局限性
5.1 优点
有画出不同模型的在情感分类任务中的混淆矩阵,还特别提到在恐惧情感中,本文模型的准确率达到了93.535%,相比BiLSTM-GCN和BiLSTM-Attention有较大提升。也说明了说明引入文本的依存句法结构以及应用自注意力机制和GCN的优势。
【混淆矩阵】
下面涉及英文缩写,第一个字母T和F代表True和False;第二个字母P和N代表阴性(Positive)和阳性(Negative),即预测结果。
- 真阳性TP:预测值和真实值都为正例;
- 真阴性TN:预测值与真实值都为正例;
- 假阳性FP:实际值为负,但预测值为正;
- 假阴性FN:实际值为正,但预测值为负;
TP反应预测为真的样本也是正样本的样本数。
真实类别-> | 正样本 | 负样本 |
---|---|---|
预测为真 | 真阳性TP | 假阳性FP |
预测为假 | 假阴性FN | 真阴性TN |
5.2 局限性
和顶会相比是有不少局限性的:
(1)数据是用自己爬的数据,并没有用公开的数据集;
(2)模型进行比较时,用的baseline如CNN、logistic较为简单;当然也有用其他baseline如BiLSTM-GCN、BiLSTM-Attention、BiLSTM等进行对比试验。
(3)图神经网络算法并没有改动较大,只是进行模型的组装。
六、下一阶段
解读ACL论文:
Graph Convolutional Networks for Text Classification(用于文本分类的图卷积网络)
论文:https://arxiv.org/abs/1809.05679v1
Reference
混淆矩阵:https://zhuanlan.zhihu.com/p/46204175
基于GCN和句法依存分析的情感分析相关推荐
- EACL 2021 | 基于依存句法增强的方面情感分析
©PaperWeekly 原创 · 作者|李东明 学校|香港中文大学(深圳)本科生 研究方向|文本生成 论文标题: Enhancing Aspect-level Sentiment Analysis ...
- [深度学习]-基于tensorflow的CNN和RNN-LSTM文本情感分析对比
基于tensorflow的CNN和LSTM文本情感分析对比 1. 背景介绍 2. 数据集介绍 2.0 wordsList.npy 2.1 wordVectors.npy 2.2 idsMatrix.n ...
- 基于文本和语音的双模态情感分析
作者 | 陆昱博士 追一科技 来源 | DataFunTalk 今天和大家分享的主题是基于文本和语音的双模态情感分析.大家可能会从自然语言处理的角度认为情感分析已经做得比较成熟了,缺少进一步研究的方向 ...
- 从爬取豆瓣影评到基于朴素贝叶斯的电影评论情感分析(下)
基于朴素贝叶斯的电影评论情感分析 用到的包:pandas.jieba(分词工具) file=open(r"review.txt",'r',encoding='utf-8') rev ...
- 基于snownlp及朴素贝叶斯的情感分析——以大众点评网评论为例
「情感分析」是对带有感情色彩的主观性文本进行分析.处理.归纳和推理的过程.按照处理文本的类别不同,可分为基于新闻评论的情感分析和基于产品评论的情感分析.其中,前者多用于舆情监控和信息预测,后者可帮助用 ...
- python评论情感分析nltk_基于 Python 和 NLTK 的推特情感分析
基于 Python 和 NLTK 的推特情感分析 作者:宋彤彤 1. 导读 NLTK 是 Python 的一个自然语言处理模块,其中实现了朴素贝叶斯分类算法.这次 Mo 来教大家如何通过 python ...
- 【毕业设计_课程设计】基于Django和vue的微博用户情感分析系统
文章目录 0 项目说明 1 系统介绍 2 系统功能介绍 3 系统启动注意事项 4 项目工程 0 项目说明 基于Django和vue的微博用户情感分析系统 提示:适合用于课程设计或毕业设计,工作量达标, ...
- 【Mo 人工智能技术博客】基于 Python 和 NLTK 的推特情感分析
基于 Python 和 NLTK 的推特情感分析 作者:宋彤彤 1. 导读 NLTK 是 Python 的一个自然语言处理模块,其中实现了朴素贝叶斯分类算法.这次 Mo 来教大家如何通过 python ...
- 情感分析 | 细粒度情感分析在美团到餐场景中的应用
每天给你送来NLP技术干货! 来自:美团技术团队 经典的细粒度情感分析(ABSA,Aspect-based Sentiment Analysis)主要包含三个子任务,分别为属性抽取.观点抽取以及属性- ...
最新文章
- 使用 Angular 打造微前端架构的 ToB 企业级应用
- ASP.net 资源请求漏洞利用工具PadBuster
- 7.2 matlab符号微积分(符号函数的极限、导数和积分)
- sql 分组求和_数据仓库工具–Hive(归纳笔记第六部分:SQL练习)
- Java EE CDI bean范围
- MySQL中with rollup的用法
- H3C 路由器的IPSEC ××× 配置
- Node聊天程序实例04:chat_ui.js
- 怎么使用计算机算法,浅谈如何在用计算机来更好的实现Floyd算法
- python数据库-mongoDB的高级查询操作(55)
- less知识点总结(一)
- LINUX双击无法启动解决一例
- linux7设置上下文权限,【CONTEXT】自定义CONTEXT(上下文)
- 当深度学习遇上量化交易——模型篇
- 高手需要具备的思维模型
- USB开设备开发学习之三:USB中的端点详细了解
- 用友投资一亿现金成立医疗软件公司
- Array.of(...[,,,])
- Vue 引入高德地图 vue-amap
- Electron使用electron-updater自动更新