如何使用TfIdfVectorizer使用SciKitLearn对文档进行分类?

2024-05-15 12:20:07 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的例子展示了如何使用sklearn20新闻组数据训练分类器。在

>>> from sklearn.feature_extraction.text import TfidfVectorizer 
>>> categories = ['alt.atheism', 'talk.religion.misc', 'comp.graphics', 'sci.space']
>>> newsgroups_train = fetch_20newsgroups(subset='train', ... categories=categories) 
>>> vectorizer = TfidfVectorizer() >>> vectors = vectorizer.fit_transform(newsgroups_train.data) 
>>> vectors.shape (2034, 34118)

然而,我有我自己的标记语料库,我想使用。在

在获得我自己数据的tfidfvector之后,我会像这样训练分类器吗?在

^{pr2}$

回顾一下: 我怎么能用我自己的语料库来代替20个新闻组,但用的方法和这里一样? 那么,如何使用tfidf矢量化语料库来训练分类器呢?在

谢谢!在


Tags: 数据from分类器trainsklearnfeature例子categories
2条回答

一般来说,对于sklearn来说,流程是:

  1. 使用某些矢量器(例如TfIDF、count etcs)将字符串数据转换为数值
  2. 拟合和变换
  3. 把它传给你选择的分类器。在

您没有提到您的数据格式,但如果它是带有一些行的csv文件,则流可以是:

  1. 阅读每一行文本
  2. 预处理,如删除停止语等
  3. 原始数据列表=[行1,行2,行…]
  4. 向量器=TfidfVectorizer()
  5. x_已转换=vectorizer.fit_变换(原始数据表)
  6. 变换后的x_可以传递给分类器的fit/train函数。在

一旦训练好分类器,就可以调用predict来获取新数据。 请记住,在将新数据传递给分类预测. 在

要解决来自评论的问题;在某些分类任务中使用tfidf表示的整个基本过程,您应该:

  1. 将矢量器拟合到训练数据中,并将其保存在某个变量中,将其称为tfidf
  2. 通过数据转换训练数据(没有标签,只有文本)tfidf.transform(…)
  3. 您使用_分类器.fit(数据、标签),其中标签与数据中的文档顺序相同
  4. 在测试期间,您使用tfidf.transform( ... ) 在新数据上,检查模型的预测

相关问题 更多 >