总结三种基于词典的情感分析方法?

数据挖掘 nlp 情绪分析 nltk
2022-02-26 23:28:10

我正在使用基于词典的方法进行情绪分析,我有一堆新闻标题需要分类为负面、正面和中性,或者在 -1(非常负面情绪)到 +1(非常正面情绪)的范围内)。

我正在考虑使用三种不同的方法:TextBlob、Vader(Valence Aware Dictionary 和 Sentiment Reasoner)和 LIWC2015,因为我可以访问它。这将导致每个标题的三个预测情绪。

我有两个问题:

  • 这种技术的优点和缺点是什么?
  • 而且,一旦运行了 3 analisys,我如何才能将它们全部融合到一个指标中?标准化/标准化这 3 个指标并对其进行平均是一个好的解决方案吗?
2个回答

你提出的是一种非常简单的集成学习形式。您需要至少有一个标记数据样本才能评估任何方法。使用此标记数据,您可以:

  • 自行评估这三种方法中的每一种
  • 评估您平均 3 种方法预测的想法
  • 如果您有足够的标记数据,您甚至可以训练一个模型,将它们的预测最佳地结合起来(这将是成熟的堆叠泛化

这种技术的优点和缺点是什么?

上下文不敏感:您提到的库用于一般情绪分析,因此您可能会遇到一些误报/误报问题。

  • 误报:字典中具有特定情绪但不适用于标题的词——例如,“低”通常可能具有负面含义,但在"covid cases remain low") 中甚至可能是正面的。
  • 假阴性:通常不带有情绪信息但在头条新闻中出现的词,例如"New Brexit deal on the table",在我们假设已经达成交易并且应该保持有效的上下文中是负面的。

低覆盖率:如果我没记错的话,你提到的工具都是基于字典或预先训练的。这些字典/培训不太可能针对您的用例进行了优化。通常,您最好在特定领域的数据上训练自己的分类器。

欠拟合:据我所知,这些库无法系统地处理逻辑否定或极性反转等现象。在某些情况下,它们可能包含允许它们区分正负的 n-gram 信息"i_like""i_don't_like"但可能无法处理大多数长尾情况,如"signed_the_deal" 和"didn't_sign_the_deal"in "uk_signed_the_brexit_deal"。极性反转指的是像 "low" 在之间的对立"low number of covid cases"(通常是好的——除非你的领域是关于 Covid 的医学研究,并且更多的案例更好,因为它们代表更多的数据)和"low confidence in the Spanish government"(通常是不好的,除非你是押注西班牙经济的对冲基金经理)。

而且,一旦运行了 3 analisys,我如何才能将它们全部融合到一个指标中?标准化/标准化这 3 个指标并对其进行平均是一个好的解决方案吗?

我完全同意 Erwan 的评论,您应该收集可用于监督评估和参数微调的测试用例样本。

作为您建议的方法的潜在风险,请确保您从不同模型中获得的分数既不完全相关(在这种情况下,您可以只使用最好/最快的模型)或正交(在不太可能的情况下,某些模型通常相互矛盾其他,你应该找出哪些是“撒谎”)。

还有另一个更有趣的潜在风险:所有模型相互补充并涵盖情绪领域的不同子空间的情况:如果一个模型特别擅长在政治头条新闻中拾取情绪,另一个模型在金融头条新闻中,另一个在体育新闻头条中,您最终可能会得到大量预测,其中正确(非中性)预测必须与两个不正确的中性预测竞争,并且总是会被平均化,从而可能导致大量假阴性。另一种平均方法是只选择置信度最高的预测,特别是如果其他两个是中性的。