文章中目标的情绪分析

数据挖掘 Python nlp 情绪分析
2022-02-20 15:28:01

目标如下:我有一篇大文章,我想定义特定单词的情绪。例如,文章描述了自行车和汽车的优缺点,我想找到汽车这个词的情感。

在这样的示例中,我不能使用文档级 SA,因为文章本身可以是正面的,而汽车则以负面的方式提及。

因此,我研究了与基于方面的情感分析相关的论文,但我的条件是缺乏用于训练 NN 的数据。因此,我专注于基本上不涉及培训过程的方法。我的一个尝试是使用 word2vec 和 K-Means 构建情绪分析工具,以便每个集群对应于三种情绪(pos、neg 和 neu)中的一种。它实际上效果很好,但我发现出于某种原因,一个词可以同时出现在两个集群中。另外,它通常不会针对特定关键字给出情感,而是针对文本中的所有方面。
另一个问题是,如果只是不自己阅读文本并检查关键字是否属于正确的簇,则基本上无法测试输出的正确性。
所以我决定先对文章进行总结,然后再应用情感分析(如 sentiwordnet 或类似)。

问题 1
有没有办法改进 word2vec+KMeans 方法?改善是不是更糟?
问题2
在情感分析之前先进行文本摘要是一个好主意吗?
问题 2
是否有更好的方法可以在不经过训练的情况下找到特定单词的情感(由于没有训练数据和少量未标记数据)?

2个回答

我不确定我是否完全明白这个想法,但在我看来,您真正感兴趣的是特定上下文中某个词的情感:像“汽车”这样的内容词本身可能无法承载稳定的情感,但它在特定上下文中的使用可能。

所以我建议这样的方法:对于任何目标词,您可以提取句子或上下文窗口,即目标词左边的 N 个词和右边的 N 个词。然后,您可以使用预定义的情绪分析工具来提取此实例的情绪值。从那里你可以:

  • 通过对实例进行平均来衡量一个单词的平均情绪
  • 比较两个不同单词的情绪或平均情绪分布

我不确定你到底在问什么,所以如果你想在整个文本中确定汽车的整体情绪,你必须首先处理“回指分辨率”,因为你会遇到的第一个障碍是如何知道什么“它,它,她,她……”指的是,也许是汽车,也许是别的东西。另一种解决这个问题的方法“如果是这样的话”,如果你的文档很小,你可以手动提取引用汽车的句子。

之后,您可以使用名为 Vader “https://towardsdatascience.com/sentimental-analysis-using-vader-a3415fef7664”的 NLTK 模块进行情绪分析,您只需将句子一一给出,或者如果您想要总分将它们组合在一起并点击 RUN :)