情感分析概述 人工智能技术落地
扫描二维码
随时随地手机看文章
与其他的人工智能技术相比,情感分析(Sentiment Analysis)显得有些特殊,因为其他的领域都是根据客观的数据来进行分析和预测,但情感分析则带有强烈的个人主观因素。情感分析的目标是从文本中分析出人们对于实体及其属性所表达的情感倾向以及观点,这项技术最早的研究始于2003年Nasukawa和Yi两位学者的关于商品评论的论文。
随着推特等社交媒体以及电商平台的发展而产生大量带有观点的内容,给情感分析提供了所需的数据基础。时至今日,情感识别已经在多个领域被广泛的应用。
评价者表达的是对手机整体的褒义评价,但如果是:“我觉得这款手机拍照功能很不错,但信号不是很好”这样的句子,在同一个评论中出现了褒义词又出现了贬义词,篇章级的分析是无法分辨出来的,只能将其作为一个整体进行分析。不过好在有很多的场景是不需要区分观点评价的实体和观点持有者,例如:在商品评论的情感分析中,可以默认评论的对象是被评论的商品,评论的观点持有者也是评论者本人。
第一步是判断待分析的句子是否含有观点信息;第二步则是针对这些含有观点信息的句子进行情感分析,发现其中情感的倾向性,判断是褒义还是贬义。关于分析情感倾向性的方法与篇章级类似,依然是可以采用监督学习或根据情感词词典的方法来处理,我们会在后续的小节详细讲解。句子级的情感分析相较于篇章级而言,颗粒度更加细分,但同样只能判断整体的情感,忽略了对于被评价实体的属性,同时它也无法判断比较型的情感观点。
另一种需要注意的情况是否定词,否定词的出现一般会改变情感词原本的情感倾向,变为相反的情感,例如“不好”就是在“好”前面加上了否定词“不”,使之变成了贬义词。除了条件句之外,还有一种语言表达也是需要在数据预处理阶段进行排除的,那就是疑问句。
具体的做法与机器学习一样需要分为两个步骤:第一步是根据训练数据构建算法模型;第二步是将测试数据输入到算法模型中输出对应的结果,接下来做具体的讲解。首先,我们需要准备一些训练用的文本数据,并人工给这些数据做好情感分类的标注。通常的做法下:如果是褒义和贬义的两分类,则褒义标注为1,贬义标注为0,如果是褒义、贬义和中性三分类,则褒义标注为1,中性标注为0,贬义标注为-1。
当训练好分类模型之后,就可以对测试集进行分类了,具体的流程与建模流程类似,先对测试的文本数据进行分词并做数据预处理,然后根据特征词矩阵抽取测试文本的特征词构建词袋矩阵,并将词袋矩阵的词频数据作为输入数据代入之前训练好的模型进行分类,得到分类的结果。
互联网上的交流不仅仅只是通过单纯的文字来进行,大量的情感表达是通过颜文字或表情包来实现的,例如经典的表示笑脸的颜文字“:D”,这类文本表达无法与上下文形成联系,所以很难判断他们评价的实体对象是什么。
不过好在这类数据本身就代表了非常强烈的情感倾向,在篇章级和句子级的颗粒度对情感进行分析,我们可以将特定的颜文字作为一种特殊的词组构建成情感字典,并人工进行情感分的赋值,对于emoji表情也可以将标准的emoji编码编入情感字典。而对于表情包的识别则是一个计算机视觉的问题,目前还没有学者在这个领域方向展开研究。
这类比较语句中通常存在着两个以上的实体或属性,如果只是在句子级的颗粒度下可以辨别出这句话是含有褒义的情感,但在属性级的颗粒度下,以情感五元组来定义的情感无法将一个实体作为另一个实体的属性来进行判断,很难分辨观点持有者到底是在对哪一个实体或属性表达情感。而这类语句在商品的评论中有非常常见,需要特别注意。
目前对于情感的分析依然处于初级阶段,仅仅只是对情感做了褒义、贬义、中性三种划分,但现实生活中的情绪远远不止这三种类型,例如:在心理学领域中,著名的心理学家罗伯特·普拉切克(Robert Plutchik)提出的情绪轮包含了8种基本情绪,并且每种情绪又划分了不同的情绪强度等级,8种情绪还可以相互结合形成更多的情绪,如图所示。
情绪轮在用户体验设计上被广泛的应用,很多情感化设计都是基于情绪轮进行的。但是在人工智能领域,将情绪进行多分类比情感分析的三分类任务要难得多,目前大多数分类方法的结果准确性都不到50%。这是因为情绪本身包含了太多的类别,而且不同的类别之间又可能具有相似性,一个情绪词在不同的语境下有可能表达的是不同的情绪类别,算法很难对其进行分类。即使是人工对文本进行情绪类别标注也往往效果不佳,因为情绪是非常主观性的,不同的人对不同的文本可能产生不同的理解,这使得人工标注情绪类比的过程异常困难。