写点什么

一文看懂 NLP 中的文本情感分析任务

2019 年 9 月 21 日

一文看懂NLP中的文本情感分析任务

1 基本概念

为什么:随着移动互联网的普及,网民已经习惯于在网络上表达意见和建议,比如电商网站上对商品的评价、社交媒体中对品牌、产品、政策的评价等等。这些评价中都蕴含着巨大的商业价值。比如某品牌公司可以分析社交媒体上广大民众对该品牌的评价,如果负面评价忽然增多,就可以快速采取相应的行动。而这种正负面评价的分析就是情感分析的主要应用场景。


是什么:文本情感分析旨在分析出文本中针对某个对象的评价的正负面,比如“华为手机非常好”就是一个正面评价。情感分析主要有五个要素,(entity/实体,aspect/属性,opinion/观点,holder/观点持有者,time/时间),其中实体和属性合并称为评价对象(target)。情感分析的目标就是从非结构化的文本评论中抽取出这五个要素。



图 1 情感分析五要素


举例如下图:



图 2 情感分析五要素例子


上例中左侧为非结构化的评论文本,右侧为情感分析模型分析出的五个要素中的四个(不包括时间)。其中实体“华为手机”和属性“拍照”合并起来可以作为评价对象。评价对象又可细分为评价对象词抽取和评价对象类别识别。如实体可以是实体词和实体类别,实体词可以是“餐馆”、“饭店”、“路边摊”,而实体类别是“饭店”;属性可以是属性词和属性类别,如属性词可以是“水煮牛肉”、“三文鱼”等,都对应了属性类别“食物”。实体类别和属性类别相当于是对实体词和属性词的一层抽象和归类,是一对多的关系。词和类别分别对应了不同的任务。观点的取值范围一般是{正面,负面,中性}。类似的,可以把观点看做是对描述词的抽象和归类,如“好看”归为“正面”。


2 任务类型

当前研究中一般都不考虑情感分析五要素中的观点持有者和时间,故后文中的讨论都不考虑这两个因素。根据对剩下三个要素的简化,当前情感分析的主要任务包括可按照图 3 所示:词级别情感分析、句子/文档级情感分析、目标级情感分析。



图 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 的分析对象是给定某一个实体的情况下该实体给定属性集合下的各个属性的情感分析,如图 4 中的实体是汽车,属性集合是动力、外观、空间和油耗。



图 4 TG-ABSA 例子


TN-ABSA 的分析对象是文本中出现的实体的情感正负向,如图 5 中,实体华为和 XX 的情感正负向分别为正面和负面。这种情况下没有属性的概念,只有实体。



图 5 TN-ABSA 例子


T-ABSA 的分析对象是文本中出现的实体和属性组合,如图 6 所示,评价对象是实体+属性的组合,如华为+拍照和 XX+性价比。



图 6 TG-ABSA 例子


在清楚了目标级情感分析的分类之后,每个类别又都可以包含为两大类任务:第一个是评价对象的识别,第二个是情感识别。评价对象识别包括评价对象词抽取和评价对象词分类,情感识别包括评价词抽取和评价正负面分类。具体例子如图 7 所示。之所以要识别出对象词和评价词,是为了能够基于属性正负面过滤的时候可以高亮相应的评价文本片段。



图 7 评价对象和评价词和类别识别例子


本文主要介绍词级别情感分析、句子级情感分析和目标级情感分析中的 T-ABSA 的内容、方法和华为云语音语义团队在该领域实践中的一些成果。这里首先区分一些概念,本文所说的情感,包括 emotion 和 sentiment 两种。严格意义上来说 sentiment 属于 emotion 的一种,但是本文中不做区分。


3 词级文本情感分析

3.1 任务介绍

词级别的情感分析,即构建情感词典(sentiment lexicon),旨在给词赋予情感信息。这里首先要确定的是情感怎么表示,常见的表示方法有离散表示法和多维度表示法。离散表示法如情感分析领域常用的{正面,负面,中性}的表示方法,或者如表



图 8 离散情感模型


用离散表示法表示的情感词典如:


高兴-正面,生日-正面,车祸-负面,灾难-负面


多维度表示法也有多种,如 Valence-Arousal-Dominance(VAD)模型,Evaluation-Potency-Activity(EPA)模型等。Valence 和 Evaluation 表示好坏,arousal 和 activity 表示人的唤起度,dominance 和 potency 表示控制力。



图 9 Valence-Arousal 模型


用连续多维表示方法的情感词典例子如:


VAD 模型在[1,9]取值范围下:车祸可表示为 (2.05, 6.26, 3.76)


3.2 常见的方法

构建情感词典常见的方法如图 10 所示:



图 10 常见情感词典构建方法


人工标注优点是准确,缺点是成本太高。自动化方法中,都是先有人工标注一些种子词,然后通过不同的方法把种子词的标签信息扩展到其他词。基于点互信息的方法会基于大规模语料库统计新词和种子词之间的统计信息,然后基于该信息对种子词做加权求和得到信息的情感标签。基于标签传播的方法会先构建词和种子词的一个图,图上的边是基于词和词之间的统计信息获得。然后用标签传播的算法获得新词的情感信息。基于回归的方法先构建词的特征向量表示,然后基于种子词的标签信息训练一个回归或分类模型,得到该模型后再对新词做预测,获得新词的情感标签信息。


3.3 我们的进展

我们团队基于已经标注的情感词典,通过自动化的方法,构建了当前业界最大规模的多维度情感词典。



图 11 情感词典构建流程


基于该方法,我们构建了业界最大规模的情感词典库,采用了 Valence-Arousal 的二维情感表示模型,情感值取值范围为[-1,.1](-1 表示不好(对应 Valence 维度)或无唤醒(对应 Arousal 维度),1 表示好或高唤醒度), 词典包含六百万词,例子如下:



图 12 构建的情感词典例子


4 句子文本情感分析

4.1 任务介绍

句子级和篇章级文本情感分析旨在整个句子或文章表达的情感倾向性,如下例子:



当前各友商推出的情感分析服务大部分都是这种整体文本的正负向预测。句子级情感分析服务在互联网时代的电商评论、政策评价中有着广泛的应用价值。句子级情感分析是一个典型的文本分类任务,我们团队也采用了当前比较有效的预训练模型+微调的方案,如下图所示:



图 13 句子级情感分析方案


4.2 我们的进展

当前我们已经上线了电商、汽车和社交领域的情感分析模型,主要支持中文语言,标签是正面和负面,带有标签置信度。如下图的例子所示,分别是手机、汽车和社交领域。





图 14 EI 体验空间电商领域、汽车领域和社交领域例子


5 目标级文本情感分析

5.1 任务介绍

前面介绍的句子级或篇章级的情感分析只关注整个文本的正负面,没有区分文本中具体的评价对象。所以就处理不了如下的例子:



该例子对汽车的各个属性的评价正负面是不一样的,如对动力和外观来说是正面,对空间和油耗来说是负面,所以就不能简单的分析整体文本的正负面。本节介绍的目标情感分析中的 TG-ABSA 任务,即固定实体下的给定属性集合的评价正负面的预测。


5.2 我们的进展

传统的属性级情感分析可以采用每个属性训练一个情感分类模型。但是这种方法需要训练多个分类模型,成本比较高。我们提出了基于单模型多属性标签输出的方法,即一个模型同时输出 N 个属性的情感标签。图 15 是当前在汽车领域结果,其中 Attribute Hit Rate 是属性的命中率,即预测出的属性占评论中实际出现的比率。Hit Attribute Accuracy 是命中的属性标签预测的准确率,即在所有命中的属性中,标签预测正确属性的占比。因为我们的模型可以输出每个属性标签的置信度,所以可以基于置信度过滤来调节模型最终的输出标签,图中是个曲线。图 16 是汽车领域属性级情感分析的例子,可以同时预测出评论中出现的动力和外观两个属性对应的正负面。该功能支持汽车领域的八个属性的评价预测,包括:内饰、动力、外观、性价比、操控、能耗、空间、舒适性。



图 15 属性级情感分析的效果



图 16 汽车领域属性情感分析例子


6 总结

本文介绍了情感分析的概念以及华为云在情感分析方面的实践和进展,部分服务已经可以在我们的“EI 体验空间”小程序体验,欢迎大家体验并提出宝贵的意见。情感分析服务可以用于商品评价智能化分析、智能评分等,欢迎大家体验。


此外,情感分析功能已上线,如果想试用/购买相关服务,可以在华为云 EI 企业智能-自然语言处理-语言处理处试用/购买,5000 次免费试用。


关于作者


李明磊,华为云 NLP 算法专家,博士毕业于香港理工大学,从事文本情感分析和情绪识别的研究,在 TAC 发表论文多篇,多次获得最佳论文奖。目前在华为云主要负责华为云文本分类、情感分析、舆情监控平台等业务。主导的文本分类平台在汽车、电商、社交等领域的情感分析达到了业界领先的水平。汽车领域属性级细粒度情感分析 8 属性准确率均达到 90%以上


2019 年 9 月 21 日 15:2610185

评论 2 条评论

发布
用户头像
明磊小哥哥 名副其实的情感分析专家,任何情感问题都可以找明磊小哥哥把把脉
2019 年 09 月 21 日 15:43
回复
怎么联系??
2020 年 09 月 27 日 23:14
回复
没有更多了
发现更多内容

爱他,就让他走?

Selina

团队管理 领导力 团队协作

祝这些不要脸的王八蛋同行家里着火

二爷

OpenCV 在 Android 上的应用

fengzhizi715

android OpenCV 计算机视觉

世界知识产权日碎碎念

尹晓铁

成长 随笔 知识产权

Java并发编程系列插曲——对象的内存结构

孙苏勇

Java 内存模型 面向对象 ClassLayout

程序员陪娃漫画系列——看医生

孙苏勇

生活 程序员人生 陪伴 漫画

Harbor和Dragonfly双剑合璧 打造容器镜像运维新模式

亨利笔记

容器 k8s Harbor dragonfly 镜像

程序员5分钟:你的程序占用了多少内存?

顾仲贤

程序员

别总说CMS、G1,该聊聊ZGC了

猿人谷

CMS G1 ZGC JVM

前端如何搞监控总结篇

大前端洞见

前端监控 监控 全链路监控

“WHY-HOW-WHAT”这个被誉为伟大的领袖如何激励行动的黄金圈法则,非常值得大家学一学!

数列科技杨德华

思维方式

在谈判中,你有哪些属于自己的独特的方法和技巧?

Yolanda

从【炉石传说】到矩阵运算

Tango

Python 学习 矩阵 数学

程序员5分钟:你了解32位带符号的整型吗?

顾仲贤

程序员

死磕Java并发编程(4):happens-before是什么?JMM最最核心的概念,看完你就懂了

七哥爱编程

Java Java并发 happens-before JMM

微信朋友圈为什么没有阅读数?

彭宏豪95

微信 产品 产品设计

运维 Harbor 镜像仓库的法宝:Operator

亨利笔记

Kubernetes 容器 k8s Harbor operator

vSphere 7融合Kubernetes,构建现代化应用的平台

亨利笔记

Kubernetes 容器 云原生 k8s vSphere

ZGC都出来了,你还不懂G1?

岁月安然

G1 JVM

回"疫"录(4):见证历史

小天同学

疫情 回忆录 现实纪录 纪实

“消灭你,与你无关”——阿里巴巴的风险 | 旧文重发

赵新龙

阿里巴巴 风险 蒋凡 IPO

回"疫"录(3):让人怀念的普通一天

小天同学

疫情 回忆录 现实纪录 纪实

程序员都应该了解的运维知识经验

松花皮蛋me

DevOps 分布式 运维

我不是怕表错态,而是怕我会不自觉地捍卫它

池建强

个人成长

Golang 真的好用吗?

极客时间

golang 编程语言

像产品设计一样思考、像程序运行一样执行

水色

批注MYSQL开发规范,助你了解其背后的“道”

三石

数据库规范 规范背后的原理 白话规范

不以涨工资为目的的技术学习,都会以失败而告终

陆陆通通

程序员 面试 涨薪

除了负载均衡的算法,你还应该知道这些

松花皮蛋me

Java 负载均衡 分布式

我为什么选择infoq写作平台

三爻

决定我们认知深度的究竟是什么?

石君

深度思考 方法论 连接

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

一文看懂NLP中的文本情感分析任务-InfoQ