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

时间:2019-02-18 20:25:18

标签: python scikit-learn pipeline countvectorizer tfidfvectorizer

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

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

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

任何澄清将不胜感激。

1 个答案:

答案 0 :(得分:3)

CountVectorizer会使用单词袋–用每个句子的单词数来构建向量。

TfIdf将BoW转换为tf-idf –句子中的频率+倒置文档频率。

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