关于python:CountVectorizer输出用作TfidfTransformer输入与TfidfTransformer()

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

最近,我开始阅读有关NLP的更多信息,并开始阅读Python后续教程,以了解有关该主题的更多信息。在阅读其中一本教程时,我观察到它们在每个推文(使用CountVectorizer创建)中都使用了稀疏的单词计数矩阵作为TfidfTransformer的输入,后者处理数据并将其馈送到分类器以进行训练和预测。

1
2
3
4
5
pipeline = Pipeline([
     ('vect', CountVectorizer()),
     ('tfidf', TfidfTransformer()),
     ('clf', LogisticRegression())
])

由于未提供任何解释,所以我无法理解其背后的思考过程...这不只是一个普通的单词袋吗?不能仅使用其中一个功能(例如Tfidf)来完成此操作吗?

任何澄清将不胜感激。


CountVectorizer会执行单词袋–用每个句子的单词计数构建向量。

TfIdf接受BoW并将该矩阵转换为tf-idf –句子倒排文档频率中的频率。

管道的这一部分可以用TfidfVectorizer代替-实际上是BoW TfIdf。后来很少在没有BoW的情况下使用,因此,如果分类器是一天结束时您所需要的,那么组合版本就很有意义了。