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