最近,我开始阅读有关NLP的更多信息,并开始阅读Python后续教程,以了解有关该主题的更多信息。在阅读其中一本教程时,我观察到它们在每个推文(使用CountVectorizer创建)中都使用了稀疏的字数统计矩阵作为TfidfTransformer的输入,后者处理数据并将其馈送到分类器以进行训练和预测。
pipeline = Pipeline([
('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('clf', LogisticRegression())
])
由于未提供任何解释,所以我无法理解其背后的思考过程……这不只是常规的单词袋吗?不能仅使用其中一个功能(例如Tfidf)来完成此操作吗?
任何澄清将不胜感激。
答案 0 :(得分:3)
CountVectorizer
会使用单词袋–用每个句子的单词数来构建向量。
TfIdf
将BoW转换为tf-idf –句子中的频率+倒置文档频率。
管道的这一部分可以用TfidfVectorizer
代替–实际上是BoW + TfIdf。后来很少在没有BoW的情况下使用,因此如果分类器是一天结束时您所需要的,那么组合版本就很有意义