1. 引言

情感分析是指自动对文本进行情感分类,判断其表达的情绪倾向。 最常见的是将文本分为正面、负面或中性。更复杂的场景中,我们可能需要识别具体的情绪,或针对特定实体计算情感倾向。

情感分析广泛用于分析用户对品牌、电影、书籍等的看法,比如通过大规模分析在线评论或社交媒体内容来获取用户情绪趋势。

情感分析的方法有很多,其中最简单的一种就是使用情感词典(Sentiment Dictionary) 进行分析。

情感分析词典通常包含词语、短语或概念所表达的情绪或极性信息。 一般来说,词典中的每个词都会有一个或多个评分,我们可以通过这些评分来计算输入句子的整体情感倾向。

本文将介绍几个英文常用的情感分析词典,并分析基于词典方法的常见局限性。

2. 情感分析词典

2.1. SentiWordNet

顾名思义,SentiWordNet 是基于 WordNet 的情感词典,它为每个 synset(同义词集合)分配情感评分,而不是直接对词语本身打分。

每个 synset 会给出两个评分:positivity(正面)和 negativity(负面),取值范围为 0 到 1。该词典覆盖了超过 15 万个词语,并且继承了 WordNet 的优点,比如区分词性(noun、verb、adjective 等)。

优点:

  • 支持多义词的区分,即同一个词在不同语义下有不同的评分。

举个例子,“attractive” 至少有两个含义:

  1. 令人愉悦的(视觉或心理上);
  2. 有磁性的。

在 SentiWordNet 中,这两个含义分别有不同评分:

POS SYNSET ID POSITIVITY NEGATIVITY TERMS DEFINITION
a 00166146 0.875 0 attractive#1 pleasing to the eye or mind...
a 00169955 0 0 attractive#3 having the properties of a magnet...

⚠️ 注意:

  • 使用 SentiWordNet 时,需要先进行词义消歧(Word Sense Disambiguation),即判断句子中词语的具体含义,否则评分可能不准确。

2.2. SentiWords

SentiWords 是 SentiWordNet 的衍生版本,但更简化。

与 SentiWordNet 不同,SentiWords 直接为词语分配情感评分(prior polarities),而不需要先判断词义。

优点:

  • 无需进行词义消歧,使用更简单;
  • 同样覆盖超过 15 万个词,适用于大规模文本分析。

SentiWords 的评分是基于 SentiWordNet 数据,通过一个高覆盖率、高精度的算法生成的。

⚠️ 注意:

  • 因为没有考虑上下文,所以对于多义词可能会出现误判。

2.3. VADER

VADER 是一个专门用于社交媒体文本的词典和规则驱动的情感分析工具。

它的词典是人工构建的,由 10 名人工标注者打分汇总而成。虽然词汇量只有约 7000 个,但其评分质量较高,且特别适合社交平台场景。

优点:

  • 支持表情符号(emoji)和网络缩写(如 lmao、lol);
  • 评分质量高,适合非正式文本分析。

以下是 VADER 词典的一部分示例:

WORD POLARITY SD INDIVIDUAL SCORES
attractions 1.8 0.87178 [1, 3, 0, 2, 2, 2, 2, 3, 1, 2]
attractive 1.9 0.53852 [2, 2, 2, 1, 3, 2, 1, 2, 2, 2]
attractively 2.2 0.6 [3, 2, 2, 3, 2, 2, 2, 3, 1, 2]
avoided -1.4 0.4899 [-2, -1, -2, -1, -1, -1, -2, -1, -2, -1]
avoider -1.8 0.6 [-2, -1, -3, -1, -2, -2, -2, -1, -2, -2]
avoiders -1.4 0.66332 [-2, -2, -1, -2, -1, -1, 0, -1, -2, -2]

📌 说明:

  • POLARITY 是 10 个评分的平均值;
  • SD 是标准差;
  • INDIVIDUAL SCORES 是原始评分;
  • 评分范围为 -4 到 +4,不同于常见的 -1 到 +1。

3. 基于词典方法的局限性

虽然使用词典进行情感分析是最简单的方式之一,但它在处理语言复杂性时常常力不从心。

以下是一些典型问题:

语境依赖性问题:

比如句子 “it gets very hot” 本身没有情感倾向,但在不同语境下可以是正面(炉子很热)或负面(笔记本电脑太热)。

否定和修饰问题:

“not good” 会被误判为正面,因为“good”是正面词,但前面有否定词“not”。

讽刺和隐含情绪问题:

“Oh yeah, I really enjoy waiting 2 hours for a response.” 是典型的讽刺句,词典方法难以识别。

建议:

  • 如果有标注数据,建议使用机器学习方法,通常效果优于词典法。

4. 总结

情感分析词典在构建情感分析系统时是一个非常有用的辅助工具。虽然存在一些局限,但在许多场景下仍然非常实用。

本文介绍了三个常见的英文情感分析词典:

  • SentiWordNet:基于 WordNet 的 synset,支持多义词,但需要词义消歧;
  • SentiWords:基于 SentiWordNet,但直接为词语打分,使用更简单;
  • VADER:专为社交媒体设计,支持表情和缩写,适合非正式文本。

在实际应用中,应根据具体需求选择合适的词典,并结合其他方法(如机器学习)提升准确率。


原始标题:Sentiment Analysis Dictionaries