智能医学与大数据基础

授课人


 7.3.4 情感分析

 

7.3.4 情感分析

我们构建情感词典、属性-观点对这些情感资源,是为了对一篇文本进行情感分析,即识别该文本表达了褒义、贬义等哪种情绪,其情感的强烈程度是多少。最基本、也是最常见的是情感分类任务:识别一段文本的情感是褒义、贬义还是中性。作为一项文本分类任务,通常有无监督学习(Unsupervised Learning)和有监督学习(Supervised Learning)两种方式。下面我们就依次介绍无监督学习、有监督学习的情感分析方法。

1.无监督学习

句子的情感信息完全来源于其中的情感词(或涉及的观点词等)及其在句中的地位。以无监督学习方式对文本进行情感分类,由于无需训练语料,我们需要人工找出情感词与句子情感之间的联系。

最直接的想法是在一句话中对出现的情感词、属性-观点对进行匹配,并将匹配到的各个情感倾向得分相累加,得到整句话、整段的总体情感倾向。例如:

这个手机很漂亮,价格也便宜,就是电池发热太严重了。

这句话中涉及的情感词语有“漂亮”、“价格-便宜”、“发热-严重”,假定它们的情感分数分别是0.8、0.3、-0.7(正分表示褒义、负分表示贬义)。因此整句话的情感得分为:0.8+0.3-0.7=0.4,句子总体表达了褒义的情感。只要我们能保证情感词典等资源的情感信息质量较高(比较准确),这种方式简单快捷,特别是对于一些短文本、句式简单的文本,不失为一种解决方案(Cui,et al.2011)。

但这样得到的结果一定正确吗?如下面的三个例句:

(1)这种情感分析方法很成功。

(2)这种情感分析方法不很成功。

(3)这种情感分析方法很不成功。

三个例句中都有褒义的“成功”一词,但因为否定副词“不”的出现,使后两句表达的情感倾向出现反转,表达贬义倾向。进一步地,其中程度副词“很”的位置差异,还会影响情感的程度:例句(2)中的“不很”表达较弱的否定,而例句(3)中的“很不”则是强烈的否定。因此,我们需要对句子中的否定副词、程度副词等成分加以提取和分析。如例句所示,通常的做法是寻找邻近的否定副词、程度副词、情感词,并根据它们之间的排列顺序,用程度副词作为情感词的加权系数、用否定副词作为反转系数。假定“成功”一词的情感得分为0.8(正分表示褒义),“很”字的加权系数为1.2,那么

(1)程度副词+情感词:情感得分为1.2×0.8=0.96。

(2)否定副词+程度副词+情感词:情感得分为(-1)×(1/1.2)×0.8=-0.67。

(3)程度副词+否定副词+情感词:情感得分为(-1)×1.2×0.8=-0.96。

注意“不很”的否定效果比单独用“不”字要弱,因此对程度副词的加权效果取倒数处理。

与之类似,多个句子之间可能也有起衔接作用的词语,这将影响几个句子组成的篇章的情感倾向。例如:

(4)这个电影的演员是一流的,画面也不错,就是剧情太烂了!

如果统计褒贬情感词语的个数,褒义词(“一流”、“不错”)有2个,贬义词(“烂”)只有1个。然而整句话读下来,相信读者会感受到,作者是把重点放在最后一句,批评剧情。因此,如果我们仅仅采用一些简单的词汇搭配规则,容易出现错误。特别是对较长的句子或篇章,准确率将会降低。

如果能够用数学模型自动从大规模的训练语料中表达(学习)出词汇、语句、篇章的一些内在规律,相信会比我们人工逐条总结得到的规律会有效得多。因此,我们可以采用有监督的机器学习模型来完成情感分析任务。

2.有监督学习

(1)训练数据

进行有监督学习的一项必不可少的环节就是训练数据,即已经标注出答案的语料。这样,通过训练,模型可以建立起特征与结果类别之间的分布关系,从而对未知答案的数据也能给出其类别的估计。在情感分析任务中,互联网大数据是一个很好的训练数据来源。本章开始提到的产品评论网站、餐馆评价网站、书评影评网站,都汇聚了大量的情感分析语料。最重要的是,这些网站为了让数据处理更加方便,在用户提交文字评论的同时,通常还有一个打分项,即用1~5或给出星级的方式让用户给出一个总体评价。从机器学习的角度来看,这个项目即可作为对应文字评论的情感标注。这样,我们就可以获得充足的训练语料。

如果不是这种评论类文本、网站,例如对于微博文本,我们如何获得训练数据呢?人工标注固然是一种解决方案,但费时费力。而且情感本身比较主观,因此对标注员的数量、质量都有一定要求。针对这一现象,有研究者注意到一些互联网文本(特别是微博)中有表情符号,揭示了作者的心情。而且这些符号是作者写的,可靠程度高。因此,可以挑选出一些简单的、包含表情符号的文本(复杂句子可能影响因素过多),用这些表情符号作为标注。当然,采用这样的标注原则形成训练数据,未免噪声较多。在这种“远监督”(distant supervision)的框架下,有噪声标注数据在用于训练时需要经过多重处理,逐步去粗取精,最终得到优质分类器(Go,et al.2009,Pak&Paroubek 2010)。

(2)特征空间

获得足够的训练数据后,我们还需要从文本中提取出特征,将每个文本映射到一个向量。在这样的空间下,机器学习模型才能发挥作用。在此,我们综合多位研究者的工作,列举常见的与情感相关的文本特征,供读者参考。

· 基于n-gram的词袋(bag-of-words)模型,通常选取n=1~3,即unigram、bigram和trigram。

· 基于分词的词袋模型,亦可以参照n-gram的做法,以词为基本单位(unigram),并形成bigram、trigram等。

· 出现的情感词,在给定情感词典的情况下,情感词更有可能揭示整段文本的情感倾向,因此将命中的情感词作为向量的维度,有助于模型学习。这里情感词可能包括正规词语、表情符号等。

· 词性特征,可以反映文本中各个词性的分布。

· 副词类特征,包括否定词、最高级及比较级类词汇等。

· 词汇的扩展。可以对出现的词语按词义进行扩展,如同义词、反义词等,从而增加命中特定词汇的机会。

· 句法特征。如词语在句法分析树中的父亲结点词,在句中的地位(主语、宾语等),以及是否是连接词等。

· 其他符号:

○ 标点符号:问号、感叹号的出现往往表示有较强的情感,而分号、顿号通常用于大段排比中,有可能是客观句;

○ 百分号、数字编号:较多的百分号、数字编号可能是在罗列一串条目,较为书面和中立;

○ URL(网址):对于短句,如果有URL,通常是陈述或广告,因此其更有可能是客观句。

在计算权重时,除了采用词的次数之外,还可以采用比例、对数、tf-idf等加权方式进行调整。

虽然上述特征列出的较多,但在实际工作中可以采用一些特征选择的方法予以筛选,或采用压缩(compression)、提取特征值(eigenvalue)、矩阵奇异值分解(Singular Value Decomposition,SVD)等方法,减小向量空间的维度,从而在一定程度上缓解输入过于稀疏的问题。

(3)学习模型

在情感分析中,常见的分类器及其应用方法包括如下几种:

· 朴素贝叶斯(Naive Bayes):分类的类别集合为C={褒义,贬义,中性},假设各个特征之间相互独立,则给定文本S,它属于类别ci 的概率p(ci |S) ∝ ∏ p(wj |ci ),其中p(wj |ci )为训练样例中类别为ci 的数据中特征wj 出现的概率。最终S的所属分类取p(ci |S)较大的那个所对应的ci 。

· k近邻(k-Nearest Neighbors,kNN):给定文本S,首先选出S与训练样例中最近的k个数据点,对这k个点的倾向性,按其与S的距离倒数加权,并求和作为p(ci |S)。

· 支持向量机(Support Vector Machine,SVM):在核函数的作用下,该模型将向量投射到超空间中的支持向量,并寻找最优的一个划分的超平面,使支持向量到这个超平面的距离最大。

· 最大熵模型(Max Entropy):在满足约束条件的前提下,使熵值-∑p(ci |S) · log p(ci |S)达到最大。因此p(ci |S)=Z(S)-1 exp(∑λj ·wj )。

此外,如果将情感词的识别作为一个结构化标注问题来看待,还可以采用隐马尔科夫模型(Hidden Markov Model,HMM)(Jin&Ho 2009)、条件随机场模型(Conditional Random Field,CRF)(李方涛2011)等,详见相关文献。

 
关键词:情感  文本  学习  

 评论 01 / 1

相关资源