用作 TfidfTransformer 输入的 CountVectorizer 输出与 TfidfTransformer()

CountVectorizer output that serves as TfidfTransformer input vs. TfidfTransformer()

最近,我开始阅读更多有关 NLP 的内容并遵循 Python 中的教程,以了解有关该主题的更多信息。在学习其中一个教程时,我观察到他们在每条推文中使用字数统计的稀疏矩阵(使用 CountVectorizer 创建)作为 TfidfTransformer 的输入,TfidfTransformer 处理数据并将其提供给分类器进行训练和预测。

pipeline = Pipeline([
     ('vect', CountVectorizer()),
     ('tfidf', TfidfTransformer()),
     ('clf', LogisticRegression())
])

由于没有给出解释,我无法理解这背后的思考过程……这不就是一个普通的词袋吗?难道不能只使用其中一个函数来完成吗,例如,只使用 Tfidf?

任何澄清将不胜感激。

词袋是 CountVectorizer 所做的——用每个句子的词数构建向量。

TfIdf 采用 BoW 并将该矩阵转换为 tf-idf – 句子中的频率 + 反向文档频率。

这部分流水线可以用TfidfVectorizer代替——实际上是BoW + TfIdf。 Later 在没有 BoW 的情况下很少使用,所以如果分类器是你一天结束时所需要的全部,那么组合版本是有意义的