文档分类:特征过滤之前或之后的 tf-idf?

数据挖掘 分类 特征选择 特征提取
2021-09-14 11:33:38

我有一个文档分类项目,我在其中获取网站内容,然后根据内容将众多标签之一分配给网站。

我发现tf-idf可能对此非常有用。但是,我不确定何时使用它。

假设一个关注特定主题的网站反复提及它,这是我目前的流程:

  1. 检索网站内容,解析为纯文本
  2. 规范化和主干内容
  3. 标记成一元组(也可能是二元组)
  4. 检索给定文档的每个 unigram 的计数,过滤低长度和低出现的单词
  5. 在结果集上训练分类器,例如 NaiveBayes

我的问题如下:tf-idf 适合在这里吗?在规范化/词干之前?在规范化之后但在标记化之前?代币化后?

任何见解将不胜感激。


编辑:

经过仔细检查,我想我可能对 TF-IDF 的运作方式产生了误解。在我描述的上述第 4 步中,我是否必须一次将全部数据输入 TF-IDF?例如,如果我的数据如下:

[({tokenized_content_site1}, category_string_site1), 
 ({tokenized_content_site2}, category_string_site2), 
...
 ({tokenized_content_siten}, category_string_siten)}]

在这里,最外层的结构是一个列表,包含元组、字典(或哈希图)和一个字符串。

我是否必须一次将全部数据输入 TF-IDF 计算器才能达到预期的效果?具体来说,我一直在研究scikit-learn TfidfVectorizer 来做到这一点,但我有点不确定它的用途,因为示例非常稀少。

1个回答

正如您所描述的,第 4 步是您要使用 TF-IDF 的地方。本质上,TD-IDF 将计算每个文档中的每个术语,并根据文档集合中的相对频率分配一个分数。

但是,您的过程中缺少一个重要步骤:注释训练集。在训练分类器之前,您需要使用希望能够使用分类器自动应用的标签手动注释数据样本。

为了使这一切更容易,您可能需要考虑使用斯坦福分类器。它将执行特征提取并构建分类器模型(支持几种不同的机器学习算法),但您仍然需要手动注释训练数据。