深入理解NLP中的文本情感分析(华为)
基本概念
- 为什么:随着移动互联网的普及,网民已经习惯于在网络上表达意见和建议,比如电商网站上对商品的评价、社交媒体中对品牌、产品、政策的评价等等。这些评价中都蕴含着巨大的商业价值。比如某品牌公司可以分析社交媒体上广大民众对该品牌的评价,如果负面评价忽然增多,就可以快速采取相应的行动。而这种正负面评价的分析就是情感分析的主要应用场景。
- 是什么:文本情感分析旨在分析出文本中针对某个对象的评价的正负面,比如“华为手机非常好”就是一个正面评价。情感分析主要有五个要素,(entity/ 实体,aspect/ 属性,opinion/ 观点,holder/ 观点持有者,time/ 时间),其中实体和属性合并称为评价对象 (target)。情感分析的目标就是从非结构化的文本评论中抽取出这五个要素。
上例中左侧为非结构化的评论文本,右侧为情感分析模型分析出的五个要素中的四个(不包括时间)。其中实体“华为手机”和属性“拍照”合并起来可以作为评价对象。评价对象又可细分为评价对象词抽取和评价对象类别识别。如实体可以是实体词和实体类别,实体词可以是“餐馆”、“饭店”、“路边摊”,而实体类别是“饭店”;属性可以是属性词和属性类别,如属性词可以是“水煮牛肉”、“三文鱼”等,都对应了属性类别“食物”。实体类别和属性类别相当于是对实体词和属性词的一层抽象和归类,是一对多的关系。词和类别分别对应了不同的任务。观点的取值范围一般是{正面,负面,中性}。类似的,可以把观点看做是对描述词的抽象和归类,如“好看”归为“正面”。
任务类型
当前研究中一般都不考虑情感分析五要素中的观点持有者和时间,故后文中的讨论都不考虑这两个因素。根据对剩下三个要素的简化,当前情感分析的主要任务包括可按照图 3 所示:词级别情感分析、句子/文档级情感分析、目标级情感分析。
其中词级别和句子级别的分析对象分别是一个词和整个句子的情感正负向,不区分句子中具体的目标,如实体或属性,相当于忽略了五要素中的实体和属性这两个要素。词级别情感分析,即情感词典构建,研究的是如何给词赋予情感信息,如“生日”对应的情感标签是“正面”。句子级 / 篇章级情感分析研究的是如何给整个句子或篇章打情感标签,如“今天天气非常好”对应的情感标签是“正面”。
而目标级情感分析是考虑了具体的目标,该目标可以是实体、某个实体的属性或实体加属性的组合。具体可分为三种:Target-grounded aspect based sentiment analysis (TG-ABSA), Target no aspect based sentiment analysis (TN-ABSA), Target aspect based sentiment analysis (T-ABSA). 其中 TG-ABSA 的分析对象是给定某一个实体的情况下该实体给定属性集合下的各个属性的情感分析,如下图中的实体是汽车,属性集合是动力、外观、空间和油耗。
TN-ABSA 的分析对象是文本中出现的实体的情感正负向,如下图中,实体华为和 XX 的情感正负向分别为正面和负面。这种情况下没有属性的概念,只有实体。
T-ABSA 的分析对象是文本中出现的实体和属性组合,如下图所示,评价对象是实体 + 属性的组合,如华为 + 拍照和 XX+ 性价比。
在清楚了目标级情感分析的分类之后,每个类别又都可以包含为两大类任务:第一个是评价对象的识别,第二个是情感识别。评价对象识别包括评价对象词抽取和评价对象词分类,情感识别包括评价词抽取和评价正负面分类。具体例子如图 7 所示。之所以要识别出对象词和评价词,是为了能够基于属性正负面过滤的时候可以高亮相应的评价文本片段。
本文主要介绍词级别情感分析、句子级情感分析和目标级情感分析中的 T-ABSA 的内容、方法和华为云语音语义团队在该领域实践中的一些成果。这里首先区分一些概念,本文所说的情感,包括 emotion 和 sentiment 两种。严格意义上来说 sentiment 属于 emotion 的一种,但是本文中不做区分。
词级文本情感分析
任务介绍
词级别的情感分析,即构建情感词典(sentiment lexicon),旨在给词赋予情感信息。这里首先要确定的是情感怎么表示,常见的表示方法有离散表示法和多维度表示法。离散表示法如情感分析领域常用的{正面,负面,中性}的表示方法,或者如表:
用离散表示法表示的情感词典如:高兴 – 正面,生日 – 正面,车祸 – 负面,灾难 – 负面
多维度表示法也有多种,如 Valence-Arousal-Dominance(VAD)模型,Evaluation-Potency-Activity(EPA)模型等。Valence 和 Evaluation 表示好坏,arousal 和 activity 表示人的唤起度,dominance 和 potency 表示控制力。
用连续多维表示方法的情感词典例子如:VAD 模型在 [1,9] 取值范围下:车祸可表示为 (2.05, 6.26, 3.76)
常见的方法
构建情感词典常见的方法如图所示:
人工标注优点是准确,缺点是成本太高。自动化方法中,都是先有人工标注一些种子词,然后通过不同的方法把种子词的标签信息扩展到其他词。基于点互信息的方法会基于大规模语料库统计新词和种子词之间的统计信息,然后基于该信息对种子词做加权求和得到信息的情感标签。基于标签传播的方法会先构建词和种子词的一个图,图上的边是基于词和词之间的统计信息获得。然后用标签传播的算法获得新词的情感信息。基于回归的方法先构建词的特征向量表示,然后基于种子词的标签信息训练一个回归或分类模型,得到该模型后再对新词做预测,获得新词的情感标签信息。
基于已经标注的情感词典,通过自动化的方法,构建了当前业界最大规模的多维度情感词典。
基于该方法,华为构建了业界最大规模的情感词典库,采用了 Valence-Arousal 的二维情感表示模型,情感值取值范围为 [-1,1](-1 表示不好(对应 Valence 维度)或无唤醒(对应 Arousal 维度),1 表示好或高唤醒度), 词典包含六百万词,例子如下:
句子文本情感分析
句子级和篇章级文本情感分析旨在整个句子或文章表达的情感倾向性,如下例子:
当前各友商推出的情感分析服务大部分都是这种整体文本的正负向预测。句子级情感分析服务在互联网时代的电商评论、政策评价中有着广泛的应用价值。句子级情感分析是一个典型的文本分类任务,团队也采用了当前比较有效的预训练模型 + 微调的方案,如下图所示:
当前华为已经上线了电商、汽车和社交领域的情感分析模型,主要支持中文语言,标签是正面和负面,带有标签置信度。
目标级文本情感分析
前面介绍的句子级或篇章级的情感分析只关注整个文本的正负面,没有区分文本中具体的评价对象。所以就处理不了如下的例子:
该例子对汽车的各个属性的评价正负面是不一样的,如对动力和外观来说是正面,对空间和油耗来说是负面,所以就不能简单的分析整体文本的正负面。本节介绍的目标情感分析中的 TG-ABSA 任务,即固定实体下的给定属性集合的评价正负面的预测。
传统的属性级情感分析可以采用每个属性训练一个情感分类模型。但是这种方法需要训练多个分类模型,成本比较高。我们提出了基于单模型多属性标签输出的方法,即一个模型同时输出 N 个属性的情感标签。下图是当前在汽车领域结果,其中 Attribute Hit Rate 是属性的命中率,即预测出的属性占评论中实际出现的比率。Hit Attribute Accuracy 是命中的属性标签预测的准确率,即在所有命中的属性中,标签预测正确属性的占比。因为我们的模型可以输出每个属性标签的置信度,所以可以基于置信度过滤来调节模型最终的输出标签,图中是个曲线。
下图是汽车领域属性级情感分析的例子,可以同时预测出评论中出现的动力和外观两个属性对应的正负面。该功能支持汽车领域的八个属性的评价预测,包括:内饰、动力、外观、性价比、操控、能耗、空间、舒适性。
原文出处: https://www.infoq.cn/article/XGoSsRfZRSupblTGGJCM
Related posts: