文本情感分析(简称情感分析)旨在识别和提取文本中的倾向、立场、评价、观点等主观信息。具体的说,情感分析主要包括两类任务:情感倾向分类(简称情感分类)和观点抽取。情感分析是人工智能的重要研究方向,具有很高的学术价值。同时,情感分析在消费决策、舆情分析、个性化推荐等领域均有重要的应用,具有很高的商业价值。
百度在情感分析领域开展了深入的技术研发和应用实践。此前,我们已经在百度AI开放平台开放了观点抽取和情感分类服务。近期,我们还通过Github开放了情感分类开源项目Senta。Senta项目包含了基于语义的情感分类模型,还包含了基于大数据训练好的模型。为此,本文将对百度的情感分类进行介绍。
图1 情感分类示例
情感分类用于识别主观文本中的情感倾向。本文的情感倾向包括积极、中性、消极三类。图1展示了情感分类的实例。情感分类是情感分析的核心问题,一直以来是研究的重点,同时它在用户消费习惯分析、危机舆情监控等均有重要应用。
一方面,情感是人类的一种高级智能行为,为了识别文本的情感倾向,需要深入的语义建模。另一方面,不同领域(如餐饮、体育)在情感的表达各不相同,因而需要有大规模覆盖各个领域的数据进行模型训练。为此,我们通过基于深度学习的语义模型和和大规模数据挖掘解决上述两个问题。
情感是人类智能的高级行为,人们表达情感的语言多种多样。为了理解文本中的情感,需要深入的语义理解。传统的情感分类主要基于词典或者特征工程的方式进行分类,这种方法需要繁琐的人工特征设计和先验知识,理解停留于浅层而且扩展能力差。为了避免传统方法的局限,我们采用了近年来飞速发展的深度学习技术。基于深度学习的情感分类不依赖于人工特征,它能够端到端的对输入文本进行语义理解,并基于语义表示进行情感倾向的判断。
图2展示了基于bi-LSTM的情感分类。总体来说,这个模型包括三层:单词语义层,句子语义层,输出层。(1)单词语义层,主要是将输入文本中的每个单词转化为连续的语义向量表示,也就是单词的embedding。(2)句子语义层,通过bi-LSTM网络结构,将单词语义的序列转化为整个句子的语义表示。(3)输出层,基于句子语义计算情感倾向的概率。
对于句子语义层,我们内部实验了各种各样的模型,包括bi-LSTM,CNN,hierarchical LSTM,self-attention等多种模型。我们发现在大规模语料上,单层bi-LSTM能够实现较好的效果。因此,在开源代码中,我们默认提供了bi-LSTM模型,同时我们还提供CNN,BOW等模型。
图2 基于bi-LSTM的情感分类模型
在不同领域,人们表达情感的语言不尽相同。为了训练好的情感语义模型,显然需要覆盖各种领域的情感语料。然而数据标注十分耗费人力资源,为此我们对大规模网络数据进行挖掘,通过标记传播方法获取大规模的情感分类语料。
互联网上天然有大量的弱标记评论数据,比如用户会对某个商品给予评论,同时给予评分。根据评分的高低我们就能确定评论的正负倾向。然而,这种数据是包含大量噪声的,需要一定的算法才能获取高质量数据。图3展示了我们的主要思路。(a)我们首先从网络上获取大规模的评论数据,根据特定规则获取高质量种子标注数据;(b)然后我们通过计算评论间的语义相似度,将数据连接成图结构;(c)最后我们就可以通过标记传播算法,将原来未标记数据转化为标注数据。我们实验发现,这种方法获取的数据质量很高,基于此数据训练得到的情感分类模型,在各种垂类准确率高,整体效果业界领先。
图3 基于标记传播的情感标记数据挖掘
情感分类既可以单独应用,提供与舆情倾向分析;也可以与观点抽取结合,形成观点概述。情感分类在百度搜索、百度资讯流、百度糯米均有落地应用,显著提升了用户体验。图4展示了三个场景实例。(a)单独使用,生成网络印象。我们通过情感分类分析用户对明星的评论,进而分析获得明星的网络印象。(b、c)结合观点抽取,生成观点概要。通过分析评论中的观点,我们可以了解用户对商店的主要观点;并且结合情感分类技术,我们还能区分正向观点和负向观点(灰色为负向);最终通过聚合产出评论观点概要,供用户快速浏览进行消费决策。
图4 情感分析在百度产品中的应用示例。
在这些应用落地的过程中,百度的情感分类和观点抽取得到不断的打磨和提升,达到了工业应用的要求。为了将百度的情感AI能力开放给行业,更好的赋能行业,我们已经通过百度AI开放平台(http://ai.baidu.com/) 开放了情感分类和观点抽取的服务接口。近期,我们还开放了情感分类开源项目Senta(https://github.com/baidu/Senta)。