我需要多标签分类机器学习方法还是没有必要?

数据挖掘 Python nlp 多标签分类
2022-02-23 11:48:10

简介
我正在从事一个涉及自然语言处理方法的社会科学研究项目。我正在为描述其内容的新闻文章分配多个标签(例如,标签 1: Blockchain、标签 2: )。Democracy然后,我通过几个 Python 情绪包运行它们,我将分析不同标签之间的相关性随时间的变化以及它们的情绪是什么样的。

例如,如果我检索 2006-2016 年的文章,我预计在 2008 年之前不会看到任何关于区块链的信息,那么我预计会看到越来越多的区块链相关文章。在 2014 年推出以太坊区块链之后,我预计区块链标签和民主化标签之间的相关性会越来越高,因为以太坊虚拟机促进了“去中心化金融”、市场的可及性、技术等。

我的学习目标之一是增强我的 Python 知识,但我需要证明任何研究设计决策的合理性。为了使用复杂的 Python 编码和花哨的库,我不想要一种不必要的复杂方法。

问题
对于这个项目,使用监督机器学习是否有意义/合理/必要,还是我应该保持简单?请您就以下注意事项提供想法吗?还有什么我应该带入这个评估的吗?

背景
多标签分类的简单方法

  • 两个标签:1. 区块链 2. 民主。
  • 创建与这些标签相关的术语列表。例如,“民主”标签可能包括:民主(将拉动民主、民主、民主化等)、投票、投票、自由、总统、议会、代议制政府等。
  • 过滤我的整个 5000 篇新闻文章列表中包含这些术语的文本,如果文章包含任何术语的任何单个实例,请标记这些文章。如果每篇文章包含与任一标签相关的术语,则使用多个标签标记每篇文章。
  • 通过随机选择 100 篇文章,完整阅读并判断标签来手动审核结果。这可能会导致进一步的手动更正,例如,如果“自由”一词在民主语境中未使用时返回大量文章,那么我可能会决定手动检查该词的所有实例的上下文。
  • 优点和缺点:无法手动完整地查看我的过滤器。一个术语的一个实例的存在(一篇文章提到“民主”一词一次)并不一定意味着一篇文章是关于该主题的(获得特定标签的门槛非常低)。与机器学习过程不同,所有术语都将被考虑,其中训练集可能不包括每个术语。文章的过滤/标签可以自动化,因此是可扩展的。

多标签分类的高级方法

  • 两个标签:1. 区块链 2. 民主
  • 创建用于训练和测试多标签分类预测算法的数据集:使用两个标签手动标记 500 篇新闻文章的子集(占总人口的 10%)。这将使用上述简单方法结合人工审核由此产生的标签来完成。例如,如果训练/测试子集包含 500 篇文章,我将阅读其中的 100 篇以探索细微差别并更正标签。这可能会导致决定手动审核所有 500 个。
  • 运行 TFIDF 函数来评估每篇文章中所有单词的重要性
  • 使用二元相关性通过朴素贝叶斯算法独立评估每个标签进行分类。
  • 如果测试产生了不错的准确度结果,那么将模型用于剩余的 4500 篇文章
  • 优点和缺点:此过程将评估每篇文章中所有单词的重要性,并更广泛地考虑包含我的搜索词的短语。此测试/训练数据的标记将比简单方法中所有 5000 篇文章的标记质量更高(手动审查时间集中在 500 篇文章而不是 5000 篇)。但是,如果训练数据不包含特定术语,那么它们将从预测过程中删除。一旦模型得到充分训练,我就可以扩展这项研究的规模,而无需额外的工作。例如,我可以通过预测算法运行 10,000 篇文章。

我的初步答案和选择的方法
多标签分类预测算法(机器学习)不是必需的,但由于以下原因是有利的:

  • 将评估所有单词的重要性
  • 可以手动彻底检查训练数据的标签
  • 主要缺点是训练数据可能不包括被认为与特定主题相关的所有术语,但我可以通过插入有关这些主题的文章或编造它们来解决这个问题。
  • 我很欣赏多标签分类问题有几个层次(例如,从二元相关性转移到分类器链/powersets 等)现在,只是希望将决策限制在二元相关性机器学习解决方案上,而不是仅仅过滤数据。我将以与此处完成的方式非常相似的方式实施
1个回答

总的来说,我认为你的推理是有道理的。在这两个选项之间,我同意多标签设置更合适,因为它不会人为地按文档强制使用单个标签。

虽然这不完全是您的问题,但我想提出一些其他想法。请记住,它们不一定更好,只是可能也值得考虑。

主题建模可能是一种选择。好处:

  • 它是无监督的:它只是“跟随文本”,因此不存在在训练数据或标记方法中引入任何偏差的风险。
  • LDA是标准方法,它是参数化的,这意味着您可以选择集群/主题的数量。您可以生成 2 个主题并手动检查与每个主题相关联的热门词,以便了解哪个主题对应于哪个标签。
  • 它是概率性的,因此对于每个文档,您都会获得该文档属于主题 A 或主题 B 的概率。这可以被认为等同于多标签,因为大约 50% 的概率意味着该文档具有两个标签.

但是,主题可能根本不符合您的预期标签,这取决于数据。在这种情况下,拆分为 2 个以上的主题可能会很有趣,然后分析生成的主题并可能标记它们。

其他想法:你提出的设计让我想到了半监督学习:给定一小部分初始标记数据(初始训练集)和一大组未标记数据,迭代训练和预测并添加新标记的实例该模型对训练集最有信心。还有主动学习,旨在最小化需要手动注释的实例数量。我不确定这些想法是否适合您的情况,以防万一。

最后,为了研究单词对主题或文档的重要性,我认为 TFIDF 太粗糙了。相反,您可以考虑:

  • 条件概率:例如p(w|t)是一个主题文档的概率t包含这个词w, 尽管p(t|w)是包含文档的概率w主题的t. 优点:计算简单、直观且信息量大。
  • 用于测量例如单词之间的关联w和一个话题t(或两个词),逐点互信息是相当标准的。