Sentiment Analysis
情感分析会将文本中的观点分类为正面、负面或中性。涵盖词典和 Transformer 方法、方面分析及偏见。
情感分析也称意见挖掘,是自然语言处理(NLP)的一项任务,用于识别文本表达的态度,通常分为正面、负面或中性,有时也会输出分数、星级或愤怒、喜悦等情绪。企业会分析商品评论、支持工单、调查问卷答案和社交媒体帖子,以便根据远超团队阅读能力的大量文本衡量客户对产品或品牌的感受;支持聊天机器人则会用它优先将愤怒的客户转接给人工客服。
分析层级#
文档级分析为整条评论赋予一个标签,句子级分析则为每个句子标注。基于方面的情感分析(ABSA)会进一步识别文本提到的每个特征对应的观点:“屏幕很漂亮,但电池勉强能撑一个上午”对屏幕持正面评价,对电池持负面评价。SemEval-2014 的 ABSA 共享任务通过笔记本电脑和餐厅评论对这一任务设置进行了标准化;方面抽取与命名实体识别(NER)有重叠,因为两者都会找出句子讨论的对象。
从词典到 Transformer#
基于词典的方法会统计情感词典中的词语;情感词典为词语列出正面或负面分数,并结合否定词(“不好”)和程度副词(“很好”)规则。Peter Turney 的无监督方法(2002)根据短语在网络上与“excellent”或“poor”共同出现的频率为短语评分;VADER(2014)则针对社交媒体调整了词典和规则,包括表情符号、大写字母和感叹号。同样在 2002 年,Bo Pang、Lillian Lee 和 Shivakumar Vaithyanathan 使用电影评论训练了朴素贝叶斯、最大熵和支持向量机(SVM)分类器;他们发现,这些分类器优于人工编写的关键词列表,但在情感分类上的表现不如主题分类。
斯坦福情感树库(2013)为 11,855 条电影评论句子中的 215,154 个短语添加了标签,让模型能够学习“not”和“but”等词如何改变后续内容的情感;其二分类版本 SST-2 成为 GLUE 基准的一部分。如今,大多数分类器会在带标签的样本上对预训练 Transformer(例如 BERT)进行微调,并通过 softmax 将输出分数转换为类别概率。在 SST-2 上微调的 DistilBERT 在验证集上达到了 91.3% 的准确率:
from transformers import pipeline
# DistilBERT fine-tuned on the Stanford Sentiment Treebank (SST-2)
classifier = pipeline("sentiment-analysis", model="distilbert/distilbert-base-uncased-finetuned-sst-2-english")
reviews = [
"The battery life is not bad at all.",
"Oh great, it crashed again five minutes after the update.",
"The screen is gorgeous, but the battery barely lasts a morning.",
]
for review, result in zip(reviews, classifier(reviews)):
print(f"{result['label']:<8} {result['score']:.3f} {review}")分类器将“not bad at all”判断为正面(0.997),将带有讽刺意味的评论“Oh great”判断为负面(0.998)。第三条评论赞扬了屏幕,却批评了电池,但文档级模型只能返回一个标签:负面(0.966),因此结果中看不到赞扬屏幕的部分。大型语言模型(LLM)也可以根据提示词进行零样本情感分类,并为每个方面分别返回一个标签,但每条评论的成本远高于拥有 66 million 个参数的分类器。
多模态情感#
人们除了通过文字,也会通过语气和面部表情表达观点;讽刺往往只体现在语气中。CMU-MOSEI(2018)是发布时这一任务规模最大的语料库,它为 1,000 名说话者的 23,453 段视频标注了情感;多模态学习模型会结合转录文本、音频和说话者的面部来预测情感,这也是情感计算的共同目标。面部这一模态属于图像分类问题:Ultralytics YOLO26 分类模型可以在按表情分文件夹整理的面部裁剪图上训练,并在 result.probs 中为每种表情返回一个概率,其输出形式与上文文本分类器生成的 softmax 结果相同。
挑战#
讽刺、反语和比较表达(“比旧的好,不过这也没什么好说的”)仍然很难处理。情感词的含义取决于领域:“unpredictable”用来评价电影情节时是称赞,用来评价汽车转向系统时则是批评;因此,没有新的训练数据,在电影评论上训练的模型用于商品评论时准确率会下降。模型也会继承数据中的偏见。Svetlana Kiritchenko 和 Saif Mohammad 于 2018 年用 219 个情感分析系统进行了测试,测试句子除了姓名或“he”“she”等性别化词语外完全相同;结果发现,有些系统会根据姓名暗示的性别或种族,持续给出更高或更低的分数。
情感分析与相关术语#
- 文本分类: 为文本分配标签的一般任务,例如主题或垃圾信息。情感分析就是使用观点标签进行的文本分类。
- 情绪识别: 从文本、面部、声音或生理信号中识别具体情绪。情感分析通常会将观点归纳为一种情感极性。
- 命名实体识别:找出文本提及的内容,而 ABSA 会将每个提及与其表达的观点配对。










