6.20 情感分析研究任务
情感分析任务和其他自然语言处理任务一样,首先需要资源的支持,在此基础上,开展情感分析元素抽取以及文本情感分类工作,下面进行简要介绍。
文本情感资源构建
情感资源一般包括情感词典和情感语料库。目前人工构建情感词典较多的是收集了褒贬情感词的词典,如哈佛大学 GI(General Inquiry)情感词典1 、匹兹堡大学提供的 OpinionFinder 主观情感词典2 、伊利诺伊大学 Bing Liu 提供的词典资源 3 ,而对于喜、怒、哀、乐、悲、恐、惊等情感相应的词典还比较少,英语中主要有 WordNet-Affect;随后有不少学者基于 WordNet-Affect 又陆续扩展到其他语言。由于是人工构建,上述词典规模基本都在几千词范围内。在中文方面,大连理工大学的情感词汇本体4将情感分为 7 个基本大类和 21 个小类,收录情感词语 27 466 条。
可以看到,人工构建词典需要较大的代价,规模也会受限。目前人们开始研究自动构建情感词典的方法有两种,即基于词典资源和基于语料库的方法。基于词典资源的方法通常利用外部语义词典(如WordNet)中词语之间的语义关系(如同义词、反义词、上位词关系等)生成情感词典;Hu et al [3] 借助 WordNet 中的同义词和反义词信息判断形容词的情感极性;Esuli et al [4] 利用同义词集合的注释信息自动构建了情感词典资源 SentiWordNet。基于语料库的情感词典构建方法最早源自 Hatzivassiloglou和 McKeown [5] ;Google 的 Velikovich et al [6] 在大规模互联网语料上利用上下文计算词语之间的语义关联构建情感词典,最终获得了大规模(17 万左右)的情感词典;Mohammad et al [7] 在 Twitter 数据上自动构建大规模情感词典,他们人工定义表情符和hashtag 的情感种子集合,利用词语和情感种子的点互信息计算情感分值,获得了 6.2 万情感词语、67 万情感短语(Bigram)。
值得一提的是,情感分析的语料库和相关评测也对推动情感分析的进步至关重要。国际 TREC、NTCIR、SemEval 组织的面向不同任务的情感分析评测,以及国内中文信息学会、中国计算机学会相继连续举办中文情感分析评测,促进了同行的交流和学习,同时针对不同情感分析任务提供了大量的人工标注语料库。当然,人工标注语料库的领域、规模都会受到一定限制。利用 distant supervision方法从评论网站(如Yelp、IMDB)或社交媒体上(如Twitter)自动获取的情感分析语料库[8] ,为在不同领域、不同任务上开展情感分析研究提供了语料库的支持。
需要指出,无论是自动构建词典,还是自动构建语料库,都扩大了情感分析的研究领域。但是由于规模较大,无法直接评估其质量,需要通过具体任务体现。
情感元素抽取
情感元素抽取旨在抽取文本中的评价发出者、评价对象和情感表达,也称为细粒度情感分析。
评价发出者是文本中观点 / 评论的隶属者。很自然的,人们会想到评论发布者一般是由命名实体(如人名、机构名)组成,因此早期的研究工作尝试使用命名实体识别和语义角色标注技术来获取观点持有者[9-10] 。也有很多学者将评价发出者的抽取定义为分类任务,这种方法的关键在于分类器和特征的选取。例如,Choi et al [11] 使用 CRF 模型和抽取模板及各种特征在 MPQA 数据集上来识别句子中评价的来源。Ku et al [12] 先用 SVM 来识别作者的意见,再用 CRF 来标注评价的发出者,在 NTCIR7MOAT 任务上取得了与最好系统接近的性能。虽然在产品评论及社交网络上都有明确的用户 ID,使评价发出者抽取研究淡化,但是在一些文本中存在描述第三方情感和观点的情况,需要对其进行抽取。
评价对象和评价表达抽取是情感元素抽取任务的核心。评价对象是指文本中被讨论的主题,具体表现为文本中评价表达所修饰的对象;评价表达抽取主要针对显式情感表达的文本,是指文本中代表情绪、情感、意见或其他个人状态的主观表述,通常以词语或短语形式出现,如“非常漂亮”、“不高兴”。由于评价对象和评价表达紧密联系的,并且可以按照序列标注任务进行识别,尽管两者可以作为独立的任务,但采用联合识别模型会更好地结合两者的信息[13] 。目前用来抽取评价表达和评价对象的方法主要分为基于句法规则匹配的方法和基于机器学习的有指导学习算法两种。Qiu et al [14] 采用了一种称为双向传播(double propagation)的算法,通过使用依存句法分析器获取情感词与评价对象的关系,并在两者之间传播信息,在迭代过程中对种子情感词进行 Bootstraping 来扩充情感词典并抽取出评价对象。基于机器学习的有指导学习算法通常将评价表达和评价对象抽取看成字符级别的序列标注[15-16]问题。具有代表性的机器学习的算法包括基于特征的 CRF [17-20] 序列标注算法和基于神经网络的序列标注算法。由于前者通常依赖专家撰写的特征模板、外部情感词典资源,领域通用性受限;基于神经网络的表示学习算法受到了越来越多的关注,例如,Irosy et al [21] 在词向量的基础上运用深层循环神经网络(Recurrent Neural Network)结构。Liu et al [22] 进一步使用了基于 LSTM 的循环神经网络(RNN),同时融入了词性(pos tagging)的分布语义表示,并且在多个数据集上证明优于 CRF方法。
需要注意的是,在实际的文本语料中,评价对象省略现象,情感的隐晦表达,都会给情感元素的抽取工作带来挑战,需要自然语言处理技术中的指代消解、隐式情感分析技术[23-24]等支持。
文本情感分类
文本情感分类的目的是判断给定句子或篇章的情感类别,也称为粗粒度情感分析。文本情感分类是情感分析的最终目标,通常可以在情感元素抽取的基础上进行句子或篇章的情感分类。近年来,由于深度学习的兴起,可以越过情感元素的抽取过程,避免级联错误,使端到端的情感分析成为可能。已有的研究工作可以大体分为基于情感词典和基于特征学习方法,下面将分别从这两个角度介绍已有的相关工作。顾名思义,基于情感词典的方法通常利用情感词或情感短语及情感反转、加强等规则判断句子的情感极性。
Turney [25] 提出了一种基于搜索引擎的方法,判断每个词语和已有情感词语的相关度,随后进行文本情感分类[2] ;Ding et al [26]利用否定词语和转折词语,提升了基于词典的情感分类方法;Taboada et al [27] 利用词语的情感强度,以及情感加强和否定规则判断篇章的情感极性。基于特征学习的方法是近年来句子级和篇章级情感分类的主流方法[2] ,Pang et al [28]提出基于特征的机器学习算法解决情感分类,后续有众多学者设计复杂的特征以提高情感分类的性能。由于手工设计特征很耗时并且依赖于专家知识,越来越多的学者尝试自动地从数据中学习文本的特征表示。基于神经网络的语义组合算法被验证是一种非常有效的特征学习手段,Socher et al [29] 提出多个基于树结构的 Recursive Neural Network,该方法通过迭代运算的方式学习变量长度的句子或短语的语义表示,在斯坦福情感分析树库(StanfordSentiment Treebank)上验证了该方法的有效性。Kalchbrenner et al [30] 使用卷积神经网络学习句子的表示,在句子级情感分类任务上取得了非常出色的效果。Tai et al [31] 在序列化的 LSTM (LongShort-Term Memory)模型的基础上加入了句法结构的因素,该方法在句法分析的结果上进行语义组合,在句子级情感分类和文本蕴含任务上都取得了很好的效果。
随着社交媒体的日益发展,用户在社交媒体上更侧重于喜怒哀乐多类别情感表达,由于多类别情感语料分布不均衡给情感分析带来一定困难,尽管采取了一些解决方案[32-33] ,但是多元分类在分类性能上不及褒贬分类。