评论的情绪分析以了解对某个主题的支持

数据挖掘 文本挖掘
2022-02-10 19:38:31

我从一个网站下载了评论,该网站询问人们是否支持或反对实施与移民有关的某些政治政策。

我想获得有关如何获得对该政策的总体支持/反对意见的任何资源或想法。

特别是,我需要一种正确识别以下所有评论在某些意义上是“反移民”的方法,例如:

  1. 我们需要在就业市场上优先考虑美国人。
  2. 我们不应该让美国人因为移民而遭受更多失业。
  3. 不应允许移民从事美国工作。

同样,该方法应该能够识别“支持移民”的评论,例如:

  1. 向移民提供这项服务将有利于经济。
  2. 如果不允许移民继续在这里工作,美国经济将受到影响。
  3. 我不认为通过这项法律会损害美国的就业。
2个回答

我同意@thebiro - 您可以首先将评论样本分类为反对或支持该政策。如果你只需要基本的for/against分类,你可以做二元分类(例如反对= 0,for = 1)。如果您需要指定声明支持或反对该政策的程度,那么您可以定义一个标度来指示评论支持该政策的程度(例如强烈反对 = -3,强烈支持 = 3)。一旦您选择了规模并手动对示例评论进行分类,您就有了一个可用于训练模型的数据集。

获得训练数据后,您需要为每条评论提供一个数字表示。这里有太多可能的方法可以列举,但一些基本概念是词袋和词向量(又名词嵌入)。这个Kaggle 教程可能有助于解释这些概念。

最后,您需要训练一个模型,该模型将每条评论的数字表示作为输入并输出情绪得分(二进制为 0 或 1,或您的规模为数字)。对于您使用的模型类型,您有很多选择。如果您使用 Python,则可以使用 Scikit-learn 中的一种监督学习方法。Scikit-learn 还有一个处理文本的教程。您在手动分类的样本上训练模型(类似于model.fit(training_data_inputs)Scikit-learn 中的内容),然后预测数据集其余部分的输出(model.predict(test_data_inputs)在 Scikit-learn 中)。

有些人还使用神经网络进行情绪分析。Keras 是一个用于构建神经网络的优秀 Python 库,并且在 Github 上提供了情感分析示例。

您首先需要将这些评论分为支持移民和移民。

然后,下一步应该是使用文本挖掘工具分析您的文档。