1. 引言
情感分析是指自动对文本进行情感分类,判断其表达的情绪倾向。 最常见的是将文本分为正面、负面或中性。更复杂的场景中,我们可能需要识别具体的情绪,或针对特定实体计算情感倾向。
情感分析广泛用于分析用户对品牌、电影、书籍等的看法,比如通过大规模分析在线评论或社交媒体内容来获取用户情绪趋势。
情感分析的方法有很多,其中最简单的一种就是使用情感词典(Sentiment Dictionary) 进行分析。
情感分析词典通常包含词语、短语或概念所表达的情绪或极性信息。 一般来说,词典中的每个词都会有一个或多个评分,我们可以通过这些评分来计算输入句子的整体情感倾向。
本文将介绍几个英文常用的情感分析词典,并分析基于词典方法的常见局限性。
2. 情感分析词典
2.1. SentiWordNet
顾名思义,SentiWordNet 是基于 WordNet 的情感词典,它为每个 synset(同义词集合)分配情感评分,而不是直接对词语本身打分。
每个 synset 会给出两个评分:positivity(正面)和 negativity(负面),取值范围为 0 到 1。该词典覆盖了超过 15 万个词语,并且继承了 WordNet 的优点,比如区分词性(noun、verb、adjective 等)。
✅ 优点:
- 支持多义词的区分,即同一个词在不同语义下有不同的评分。
举个例子,“attractive” 至少有两个含义:
- 令人愉悦的(视觉或心理上);
- 有磁性的。
在 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:专为社交媒体设计,支持表情和缩写,适合非正式文本。
在实际应用中,应根据具体需求选择合适的词典,并结合其他方法(如机器学习)提升准确率。