3.6 情感倾向分析
情感是用户在搜索过程中的重要行为之一,是分析用户搜索行为的重要参考。用户的情感简单地区分为“喜”“怒”“哀”“乐”。情感不仅仅有倾向的方向,还有在这个方向上的大小。
情感倾向分析的目的是识别出用户在语言表达过程中心理状态的两极观点。计算机需要做的是将用户的搜索表达转换为计算机可识别的情感数值,数值大小代表着情感积极与消极程度。情感语料库中收集的是关于人在互联网上积极与消极的语句表达方式,通过对语料库进行分析来实现情感识别。在实现过程中需要考虑4种特殊情况。
(1)否定词。例如,“我喜欢编程”和“我不喜欢编程”表现为完全相反的含义。否定词的出现会让句子的含义发生很大变化。然而不仅需要判定否定词的出现,否定词的出现次数也会对情感倾向分析产生两极影响,例如,句子“我不是不喜欢编程”中的双重否定。
(2)程度副词。对本身喜欢或不喜欢的事物再加以深刻阐述,例如,“我非常喜欢编程”“我非常不喜欢编程”,这些类似词语包括“常常”“最”“很”“几乎”“几乎不”等。程度副词不影响情感的倾向性,但对倾向程度的影响较大。
(3)关系连词。在复合句子中常常遇到,包含因果关系、转折关系等,尤其在转折关系中,需要以转折后的语句作为分析标准,例如,句子“虽然他曾经不喜欢编程,但在经历了一些事情之后,他爱上了编程”。
(4)句子类型。在正常语句的处理情况下,大多针对陈述句,而在其他句式类型中,可能表达的是另一种情感。在疑问句中,需要通过上下文环境进行分析,例如“我喜欢编程吗?”,在感叹句中表现为另一种加强方式,例如,“我喜欢编程!”就比陈述句“我喜欢编程”的情感倾向性更强。
通过对上述4种特殊情况的描述可以看出,程度副词对情感的影响可以通过权重来控制。例如,设定权值1表示对情感的一般影响权重,采用1.5则表示在原有基础上再提升一半的影响,同理,情感减弱型副词取权值0.5表示情感在原有基础上降低一半的影响;否定词对情感的影响权重则可以采用 [2+(-1) n]/2公式进行计算;此外,否定词为奇数个表示越消极,为偶数个表示越积极,同程度副词达到相同的效果。
可以通过比例换算的方式判定情感倾向。词语的情感倾向通过语料库训练计算得出。每个词语在积极和消极中都占有权重,在对给定的句子进行情感程度识别时,需要先将句子进行分词,并结合上述4种特殊情况,计算每个词语的消极权重和积极权重;然后根据词语的消极权重和积极权重累计求和,计算整个句子的消极累计指数和积极累计指数,则句子的总体情感指数为两者之和。积极累计指数在总体情感指数中的占比即句子的情感倾向。情感倾向指数越大,表明情感越积极。当情感倾向指数为0.5的时候,表示情感既不积极也不消极。如表3-22所示为词语“美好”“生活”“我”“向往”的情感消极指数和情感积极指数。
表3-22 词语“美好”“生活”“我”“向往”的情感消极指数和情感积极指数
因此,计算句子“我向往美好生活”的情感倾向指数,首先计算情感消极指数累计值为1.33;其次计算情感积极指数累计值为2.14;最后通过两者在总体情感指数中的占比来计算情感倾向指数。因此,情感倾向指数为2.14/(1.33+2.14) ≈0.617,表示句子“我向往美好生活”带有积极的情感。
以上通过较为简单的方式进行了情感倾向分析,也可以采用分类的方式实现,如基于支持向量机或多层感知器,甚至深度神经网络。但是无论采用哪种方式,都需要考虑上面提到的4种特殊情况。