情感分类论文、代码汇总

1、Disconnected Recurrent Neural Networks for Text Categorization

哈工大讯飞联合实验室的一篇论文,非常棒的是这篇论文有中文版本!
论文思路比较简单,想结合CNN和RNN两者的优点。需要调整窗口超参。代码使用tensorflow实现。
论文地址http://aclweb.org/anthology/P18-1215
中文版论文地址https://kuaibao.qq.com/s/20180522G0V3R500?refer=spider
知乎阅读笔记https://zhuanlan.zhihu.com/p/52173441
代码地址https://github.com/liuning123/DRNN

2、Aspect Based Sentiment Analysis with Gated Convolutional Networks

多数实验使用LSTM和attenion机制来预测有关目标的情感极性,但模型往往很复杂并且需要很长的训练时间。本文提出了一个基于CNN和Gating Mechanisms(门机制)的模型。一种新的Tanh-ReLU 门单元能够根据给定的aspect或实体选择输出的情感特征。这个结构比应用于现有模型的attention层简单得多。同时,本文中模型的计算在训练中很容易并行化,因为卷积层不像LSTM层那样有时间依赖性,并且门单元也能够独立工作。本文在SemEval 数据集上进行试验,表明了实验效果的提升。
论文地址http://www.aclweb.org/anthology/P18-1234
代码地址https://github.com/wxue004cs/GCAE
知乎阅读笔记https://zhuanlan.zhihu.com/p/50284374

3、Hierarchical Attention Networks for Document Classification

论文地址https://www.aclweb.org/anthology/C/C16/C16-1047.pdf
代码地址https://github.com/vietnguyen91/Hierarchical-attention-networks-pytorch
https://github.com/cedias/HAN-pytorch

4、Recurrent Attention Network on Memory for Aspect Sentiment Analysis

代码使用tensorflow实现。
论文地址https://www.aclweb.org/anthology/D17-1047
代码地址https://github.com/lpq29743/RAM/blob/master/model.py
知乎阅读笔记https://zhuanlan.zhihu.com/p/34043504

5、Sentiment Classification towards Question-Answering with Hierarchical Matching Network

这篇论文介绍的是关于电商平台问答的情感分析,类似淘宝的“问大家”这种形式的问题对,根据问题答案对来分析其中的情感。
该论文的贡献主要有两个:

  1. 提出了一个新问题,即问答情感分析。并且上传了一份用于研究该问题的标注数据。数据链接地址:https://github.com/clshenNLP/QASC/
  2. 对这个新问题提出了一种专门的解决方法,即题目中的分层匹配神经网络。

该论文首先介绍了这个任务描述,然后分析这种任务为什么不适合直接用传统的情感分析技术来进行研究,并提出了一种专门针对这种问答的情感分析研究方法,叫作分层匹配神经网络,该方法分为三步:

  1. 将问题和答案都分解为一个个短句,然后对于每个Q和A中的短句构建 [Q-sentence, A-sentence]单元。
  2. 使用一个QA双向匹配层,将每个[Q-sentence, A-sentence]单元编码为一个向量,以便用于后续情感分析。
  3. 使用自我匹配注意力层(self-matching attention layer)让模型自动捕捉每个[Q-sentence, A-sentence]匹配向量的重要程度,以便更好的推断Q-A的情感极性。

其网络结构如下图所示:
分层神经网络结构

关于作者分析的标注数据集:
数据来源:淘宝的“问大家”,主要包括美妆、鞋和电子产品这三个领域,每个领域收集了10000条问答对。
标注说明:对于情感分类的标注结果有三类,分别是positive, negative, neutral,conflict。其中conflict代表这个问答对中既包含对整体评价对象的积极情感,又包含消极情感。比如:“Q:这个手机好用吗? A:手机使用起来手感很好,非常流畅。但是电池不太好,一会儿就没电了!”。这个Q-A就会被标注为“conflict”。
而neutral并不一定是中立的,按照作者描述的规则,以下这些情况都会被标注为“neutral”:

  1. 答非所问。比如“Q:屏幕清楚吗? A:电池寿命很长!”
  2. 不确定的回答,“我不知道”这种回答。比如“Q:这款手机怎么样? A:不知道,买来送人的”
  3. 不包含感情的客观事实。比如“Q:手机什么颜色? A:蓝色”
  4. 对比两个或多个产品的问答。比如“Q:这款手机和iPhone6相比怎么样? A:那决定于你,它们是不可比较的”
    标注数据分布情况

论文地址https://aclweb.org/anthology/D18-1401
数据链接地址https://github.com/clshenNLP/QASC/
代码地址:暂无代码。

6、A Cognition Based Attention Model for Sentiment Analysis

论文地址https://www.aclweb.org/anthology/D17-1048
代码地址:暂无代码。

7、Hierarchical Attention Networks for Document Classification

篇章级的文本分类,思想是首先用GRU+词级别的Attention机制对每个短句进行建模,然后用另一个GRU+句子级别的Attention机制对整篇文章进行建模。与以前的工作的不同之处在于在使用Attention发掘单词(或句子)的权重的时候,加入了一个上下文向量,这个上下文向量是随机初始化的,由模型自己去学习。以词级别的Attention为例,公式如下:
使用双向GRU生成每个句子的表示
Attention机制
如上图所示的公式中,
论文地址https://www.cs.cmu.edu/~diyiy/docs/naacl16.pdf
代码实现

  1. https://github.com/GeneralZh/hierarchical-attention-networks
  2. https://github.com/GeneralZh/attention-networks-for-classification

阅读笔记

  • 11
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当涉及到情感分类时,支持向量(Support Vector Machine,SVM)是一常用的机器学习算法。下面是一个使用Python实现情感分类的SVM代码示例: ```python # 导所需的库 from sklearn.feature_extraction.text import TfidfVectorizer from sklearn import svm from sklearn.metrics import classification_report # 准备训练数据和标签 train_data = ["I love this movie", "This movie is great", "I really enjoyed this movie"] train_labels = [1, 1, 1] # 1代表正面情感 # 准备测试数据和标签 test_data = ["This movie is", "I hate this movie", "I didn't like this movie"] test_labels = [0, 0, 0] # 0代表负面情感 # 创建TF-IDF向量化器 vectorizer = TfidfVectorizer() # 将训练数据向量化 train_vectors = vectorizer.fit_transform(train_data) # 创建SVM分类器 classifier = svm.SVC() # 训练SVM分类器 classifier.fit(train_vectors, train_labels) # 将测试数据向量化 test_vectors = vectorizer.transform(test_data) # 使用训练好的分类器进行预测 predictions = classifier.predict(test_vectors) # 输出分类结果报告 print(classification_report(test_labels, predictions)) ``` 上述代码中,我们首先导入了所需的库,包括`TfidfVectorizer`用于将文本转换为TF-IDF特征向量,`svm`用于创建SVM分类器,`classification_report`用于生成分类结果报告。 然后,我们准备了训练数据和标签,其中训练数据是一些带有情感的句子,标签表示每个句子的情感类别(1代表正面情感,0代表负面情感)。 接下来,我们创建了一个TF-IDF向量化器,并使用训练数据对其进行拟合和转换,得到训练数据的特征向量表示。 然后,我们创建了一个SVM分类器,并使用训练数据和标签对其进行训练。 接着,我们将测试数据使用之前拟合好的向量化器进行转换,得到测试数据的特征向量表示。 最后,我们使用训练好的分类器对测试数据进行预测,并输出分类结果报告。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值