1、概述
情感分析主要分为三个部分,信息抽取,信息分类,信息检索与归纳。如下通过概述总结一些常见的方法,便于以后用的到。
1.1信息抽取
1.1.1评价词语的抽取
通过极大语料库的极性判断和注释信息;基于规则的相似度的查看(but、and等);基于图的方法(不同词汇间的连线,通过迭代的方式来计算其极性)。
1.1.2评价对象的抽取
使用规则/模板的方式,评价词语和评价对象槽(slot)的词序列模板(可扩展性差);把评价对象看作产品属性的一种表现形式(难点在于领域指示词的获取);采用多粒度的话题模型挖掘产品领域情感文本中的评价对象,并将相似的评价对象进行聚类。
1.1.3观点持有者的抽取
命名实体识别技术;语义角色标注来完成观点持有者的抽取;将观点持有者的抽取定义为分类任务(关键在于分类器的特征选取);名词短语都视为候选观点持有者,使用ME模型来进行计算
1.1.4组合评价单元的抽取
对于同一个形容词在不同的语义情境下的意思是不同的。
主观表达式:提取n元词组/词语作为候选表达式,通过对比训练语料的标准表达式,算出概率
评价短语:人工总结或半自动生成的模板
1.2信息分类
现在大多采用依靠情感词典或者机器学习的各种方法,分析句子/篇章中的评价词语或组合评价单元的极性,然后进行加权求和
1.3信息检索与归纳
1.3.1情感信息检索
对于文档的情感信息检索,在主题相关和情感倾向性两方面都对文章进行打分,线性加权的结果作为文章排序的依据
1.3.2情感信息归纳
对一个产品属性的情感归纳;自动生成情感标签(这个类似于豆瓣电影评分,对于电影类型的喜好有着标签一样;还有大众点评对一个事物评分的各种标签)
2、文章
2.1 Do Enterprises Have Emotions?
2.1.1文章的理解
subjectivity analysis 分为sentiment analysis or opinion mining以及emotion detection,前者是关注文章或者句子的情感极性,后者强调把情感细分到某个类。根据过去的文章,有证明了emotion detection更加有效;有从处理财经类新闻的词汇到用可计算的极性矩阵的转变;也有利用官方陈述创建了很大的语料库,然后利用词袋模型作分析的;后来有提出对仅有情感分析做决策要小心一点,把情感的信息与量化财务指标结合在一起更为精确。
该文章主要是为了检验企业是否可以将情绪状态归结为社会角色身份的一部分,提取了全球前90的公司财经类信息,基于最简单的词袋模型,用VAD评分。
结果是两个企业类新闻情感的的VAD数据,呈现出相同的趋势,与RCV1 的各类集合相比较,与其中某些数据集有很大的相似性。
2.1.2想法
这篇文章理论上证明了当我们把对评论或者新闻中的情感分析运用到企业中,是成立的。而这种证明方法,是给定一个指标(如VAD的分布情况),基于不同数据集的分布来观察结论。
2.2 Context-Sensitive Lexicon Features for Neural Sentiment Analysis
2.2.1文章的理解
对于Neural Sentiment Analysis来说,现有的大多数方法都是在不考虑语境的情况下使用情感词典,最后计算出情感分数,这篇文章提出了一个基于简单的加权和模型的基于上下文敏感的词典的方法,使用递归神经网络来进行情感分析。
这篇文章是使用一个双向的LSTM模型,引入情感词典特征的同时学习每个单词的权重,自动作为隐藏变量。模型如下:
一共分为三层,input layer根据语义词典讲单词变为向量到feature layer,feature layer利用双向LSTM来提取序列中的非本地语义信息,output layer计算每个情感词的权重分数,以及句子的总体情绪偏差。
关于LSTM:
入门知识 (参考博文)
搞清楚一般的LSTM网络,有一个x<sub>t</sub>作为t字符的输入,h<sub>t-1</sub>是上一个输出的值,C<sub>t-1</sub>是上一个传过来的状态;xt与ht-1通过参数训练和激活函数可决定一个丢弃门(决定哪些信息可以被抛弃),更新门(两个参数);然后两者共同决定Ct-1更新后的值C<sub>t</sub>,然后所有的参数共同决定此刻t输出的结果。主要的公式就是:
而文章中的双向LSTM,主要是多了往后的输出h<sub>t</sub><sup>L</sup>,以及往前的输h<sub>t</sub><sup>R</sup>,可以看做是两个LSTM模型结合在一起,儿t时的输出,也是由这两个参数共同决定的。
文中的小技巧:
作者将t时htL与htR决定的输出结果作为中间变量,再通过2tanh激活函数,让输出结果的范围扩大一倍,这样对情感的分类就更多了,利于描述情感正负极的程度。
结果:
对于每一个每一个单词向量w,经过模型训练出来一个参数τ<sub>jt</sub>,线性组合后所有单词求和的平均值作为该句子(或者文档)的基础分数;部分参数的线性组合通过激活函数的值作为偏差分数。
结果显示,这个模型不仅可以学习这样的操作细节,而且还可以在不具有词汇特征的情况下对先进的循环神经网络基线进行显着改进,在Twitter基准测试中取得最佳结果
2.2.2想法
做NLP有很多常见的方法,比如词袋模型,利用大词典的SVM,规则匹配(rules),recurrent neural network,LSTM等,对于传统的词袋模型,他有非常明显的两个弊端,一个是对于复杂的语义结构没法识别,另一个是不同词汇在不同语境下的意思;至于大词典和规则匹配,可想到的缺点是,人工作用太大,可扩展性也很低。而LSTM丰富的运用于NLP中,它不仅考虑到了上下文的影响,还对上下文的词汇权重进行了考虑,但是直观来说,他需要的的参数太多,而且串行工作的时长会比较慢。
LSTM有很多变体,除了双向之外,还有Gated Recurrent Unit、peephole connection等,但是他的本质是一样的,在未来的研究中,可以根据不同的需要对LSTM进行不同变体的研究。
2.3Evaluating Sentiment Analysis in the Context of Securities Trading
2.3.1文章的理解
这项研究的主要目的实际上是重新评估情感分析的评估标准。该文章提出,在对评估测试集进行评估时,如果从分析人员的训练数据中抽取相同的人为主题注释,则返回的性能会更差,但是就根据实际市场回报的话,结果会更好。所以更好的特征选择或者不同的模式识别算法可能并不是真正提升或改进分类的精度。
无偏估计
2.4 Evaluation metrics matter:predicting sentiment from financial news headlines
2.4.1 文章的理解
该文章旨在分析财经新闻的标题的情感,在不同的特定特征和算法中找到最合适的,特别是SVR和BLSTM。 文中发现BLSTM在没有任何关于公司情感的知识的情况下,胜过SVR。过去工作:建立专业属于词汇表---->多层神经网络---->n-gram for SVM---->BLSTM
SVR:(参考博文 )
SVR是SVM的回归模型,SVM比较熟悉了,它旨在yi(w∙ϕ(xi)+b)≥1−ξi的约束条件下最小化1/2||w||<sub>2</sub><sup>2</sup>+C∑ξi。然而对于回归模型,旨在拟合到一个线性模型(类比之前预测白葡萄酒的例子),所以损失函数定义为:
由于绝对值的存在,ξ在绝对值展开后也就变成了两个不一样的松弛变量,目标也就变成了:
一样的,最后通过对偶式还有拉格朗日算子解出各个参数的值。而在本篇论文中,对于普通的SVR模型,除了训练C和epsilon的值之外,还引入了special token去代替公司名称,比较了uni-grams和bi-grams等,而且表示正负极性的词汇由离excellent与poor的cosine大小决定,最终采用布尔向量表示情感。
SVM的一些问题与优点:
1. 泛化能力强,无需依赖全部数据
2. 对数据不敏感,需要特征的维度小于样本数量
BLSTM:
细节提一下,与SVR一样都是使用Unitok,在word2vec中,使用最长句子的token长度,不够的补齐,识别不了的全为0;除此之外,还使用了dropout和early stopping(需要验证集来确定)。其中Standard LSTM强调的是drop out,Early LSTM强调的是early stopping。
结果:
对于最好的SVR来说,uni-grams和bi-grams综合使用更好,Unitok tokeniser标记器比直接空白更好(!!!),C=0.1, eplison=0.01,word replacement。而最好的SVR模型与两个LSTM模型的对比,是通过三个侧重点不同的指标进行评分的。最后发现BLSTM系统不知道句子的哪些部分与公司的情绪相关,也不知道某些情感词的强度或者它们是否存在,更无法预测具有多个公司的一个句子。