以下示例显示了如何使用Sklearn 20新闻组数据训练分类器。
>>> 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后,我会训练这样的分类器吗?
classif_nb = nltk.NaiveBayesClassifier.train(vectorizer)
回顾一下: 我怎样才能使用自己的语料库而不是20个新组,但这里使用的方法相同? 那么如何使用我的TFIDFVectorized语料库来训练分类器呢?
谢谢!
答案 0 :(得分:8)
解决评论中的问题;在一些分类任务中使用tfidf表示的整个基本过程你应该:
答案 1 :(得分:2)
一般来说,对于sklearn,流程是:
您没有提及您的数据格式,但如果它是带有某些行的csv文件,则流程可能是:
一旦你训练了分类器,就可以为新数据调用预测。 记得在将新数据传递给classif.predict之前,使用上面使用过的和适合的矢量化器将新数据转换为与您训练过的数据相同的格式。