简介
我正在从事一个涉及自然语言处理方法的社会科学研究项目。我正在为描述其内容的新闻文章分配多个标签(例如,标签 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 等)现在,只是希望将决策限制在二元相关性机器学习解决方案上,而不是仅仅过滤数据。我将以与此处完成的方式非常相似的方式实施。