用于文本分类的权重因子

机器算法验证 机器学习 数据挖掘 文本挖掘 tf-idf
2022-03-22 22:08:20

我正在处理文本分类任务,我拥有 21,000 个用于训练的文档,以及(目前)7000 个用于测试的文档。我为训练语料库和测试语料库构建了 doc-term 矩阵,具有两个不同的权重因子,即TF(词频)或TF-IDF(词频-逆文档频率)。然后我使用带有高斯径向内核的 SVM 对文档进行分类。tf-idf 权重的 F1-measure 接近 0.8,而 tf 权重的性能较差,约为 0.7。因此,从逻辑上讲,我们将倾向于使用 tf-idf 加权。

但是,在增量上下文中会出现一个问题也就是说,当我们必须不时对单个或几个新文档进行分类时(使用预训练模型)。不适合对单个文档使用 tf-idf 加权,因为 tf-idf 通常用于衡量文档集合中的单词重要性。

我应该妥协使用 tf 加权还是存在其他一些技巧?

2个回答

与 simmmons 阐明的一样,我们可以为训练词汇表中的所有术语存储一个术语频率向量。然后我们可以轻松地在这个增量上下文中生存,假设新文档也在训练语料库中,然后用新添加的文件更新这个向量,最后重新计算这个文档的 idf (tf-idf) 值。为简单起见,我认为对于“过时”的训练语料库重新训练模型是不明智的,如果训练语料库的规模太大,例如 100 万。

我发现了一个与我的问题类似的线程,但有更详细的解释和一些数学公式。你可以参考一下

你有没有想过将训练集的词频和文档频率分开存储,然后当你添加一个新文档时,你可以更新新训练集的文档频率,即包括新文档,并计算 tf-idf。还是我错过了什么?