更少的观察和更大的文档 vs 更多的观察和更小的文档

数据挖掘 分类 nlp
2022-02-23 21:15:07

假设我有一个包含 1000 个文档的数据集。

每个文档都是餐厅评论(文本相对较短),并带有标签 {Negative, Indifferent, Positive}。

假设数据集有 600 条正面评论、200 条中立评论和 200 条负面评论。

我想训练一个分类器根据评论的文本将评论分类为负面、无关紧要或正面。

我暂时不考虑使用任何词嵌入,因此我可能会使用 TF 或 TF-IDF 模型(尽管这对于当前问题可能有点偏离主题)。

假设在我的情况下,我将数据集(以分层方式)拆分为包含 800 个观测值的训练集和包含 200 个观测值的测试集。

我的问题如下:在我的训练集中有 800 个单独的文档还是根据其类别/标签合并这些文档并创建 3 个非常大的文档更好?

有 3 个标签中的任何一个的 800 个单独的文档或每个标签的 3 个大文档是最好的方法,为什么?

我的问题源于这样一个事实,即在后一种情况下,例如,如果我做 TF-IDF,那么这将基于不同的类别/标签应用,因为每个文档都与一个类别/标签有关。

另一方面,如果我像前一种情况那样(实际上我们通常这样做),那么 TF-IDF 将与类别/标签无关,我不知道这会有所帮助。

答案仅仅是因为这是一个有趣但非常糟糕的主意吗,因为通过这种方式,您只是大量减少了训练模型/算法的观察次数,因此您使他更难弄清楚如何成功地对事物进行分类?

1个回答

有 3 个标签中的任何一个的 800 个单独的文档或每个标签的 3 个大文档是最好的方法,为什么?

在任何 ML 问题中,您需要考虑的第一件事是:问题的实例是什么?换句话说,您希望在流程结束时对其进行预测的输入是什么?

想象一下,你用 3 个大文件训练你的模型,每个标签一个。那么这种模型的输入是一大组具有相同标签的文档。所以它只能为共享相同标签的一组文档预测一个标签。这意味着在应用您的模型之前,您需要以某种方式获得标签……不是吗?:)

这就是为什么在这种情况下实例必须是单个文档的原因。学习算法的工作是学习根据实例发现标签,为此它需要每个可能标签的许多实例。

另一方面,如果我像前一种情况那样(实际上我们通常这样做),那么 TF-IDF 将与类别/标签无关,我不知道这会有所帮助。

这就是混淆的地方:TF-IDF 权重不应该以任何方式对标签进行编码,它们代表了文档中特定单词的重要性。学习算法将对所有单词使用此信息,即它将学习单词delicious具有高TF-IDF 和单词disgusting具有高TF-IDF 之间的区别(例如)。

答案仅仅是因为这是一个有趣但非常糟糕的主意吗,因为通过这种方式,您只是大量减少了训练模型/算法的观察次数,因此您使他更难弄清楚如何成功地对事物进行分类?

这也是正确的,但主要问题是我上面提到的问题:当您将模型应用于未标记的数据时,您将无法提供相同类型的输入。