未标记文本的情感分析和分类中的错误

数据挖掘 机器学习 深度学习 nlp 情绪分析 文本分类
2022-03-11 23:23:36

我正在处理特朗普和拜登辩论的记录,想分析句子并对负面、正面或中性评论进行分类,但遇到了一个问题。我使用 TextBlob 和 transformers 管道来分析情绪,但不幸的是,在这两种方法中,都存在一些非常灾难性的缺陷!

例如,我发现 TextBlob“每天有更少的人死去”(负面评论)中识别出-0.70 极性

或变形金刚管道识别“大厅里的观众已承诺保持沉默。” 作为0.99% 肯定的负面评论

为什么你认为它正在发生?我们有什么办法可以防止这种情况发生吗?有没有比这更好的方法来分析未标记文本的情绪?

另外,我对“哦,真的?!”这样的句子感到不舒服。被归类为中立。我认为这更像是一种讽刺或负面的评论。

这是我的colab 笔记本,我在观察这些示例的地方添加了一个“问题”降价。

1个回答

首先,恭喜您考虑对结果进行定性分析 :) 我知道这应该很明显,但是很多人只是假设系统可以正常工作并且不费心检查他们的输出。

现在,严格来说,您所看到的不是错误。这些是统计系统造成的错误。统计系统并不意味着一切都正确,它只是意味着“尽其所能”标记输入,其知识主要受限于 (1) 训练时使用的数据和 (2) 所做的假设在模型本身的设计中。

我不知道您使用的系统的确切特征,但我可以对您提到的错误做出有根据的猜测:

  • “每天有更少的人死去”很可能被预测为否定的,因为它包含“正在死去”这个词。训练数据中可能没有(或很少)包含“死亡”一词并被标记为正面的示例。因此,系统假定任何包含“死”的句子都可能是否定的。有人可能会注意到,“更少人死亡”的积极语义在系统上完全丢失了,因为它专注于简单的线索(单个单词),它无法解析更复杂的短语。
  • “大厅里的观众已经答应保持沉默。” 将是一个类似的情况:“沉默”这个词或者“保持沉默”这两个词可能只在训练期间的负面例子中被发现,所以系统只是错误地概括了包含这些词的句子是负面的。
  • 讽刺的“哦,真的吗?!” 是系统正确识别的更复杂的概念。讽刺检测的任务是单独研究的,因为它对机器来说是一项艰巨的任务。我没有密切关注这个领域,所以我可能是错的,但我认为这项任务还没有达到任何令人满意的成熟度,更不用说与标准情绪分析系统集成了。

尽管如此,这些错误并不意味着结果是无用的。如果您手动注释一个随机样本并在此样本上评估系统的性能,希望您会看到系统整体表现不错。这就是对统计系统的期望:它在个人基础上并不可靠,但通常它在平均水平上做得很好。

更一般地说,所有这些错误表明自然语言理解的问题还远未解决……而且可能永远不会。好消息是 NLP 科学家还有很多有趣的问题需要解决;)