http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
构建分类器,以NB为例:
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB().fit(X_tfidf, rawData.target)
要预测新样本,需要使用和训练集完全相同的特征提取方法,不同点是,只要call transform instead of fit_transform on the transformers,因为我们在训练集上已经fit过了。
docs_new = ['i love this book', 'the book is not so good']
X_new_counts = count_vect.transform(docs_new)
X_new_tfidf = tfidf_transformer.transform(X_new_counts)
predicted = clf.predict(X_new_tfidf)
for doc, category in zip(docs_new, predicted):
print('%r => %s' % (doc, rawData.target_names[category]))
'i love this book' => positive_folder
'the book is not so good' => positive_folder
评估分类器效果:
y_new_target=[1, 0]
import numpy as np
np.mean(predicted == y_new_target)
Out[42]: 0.5
from sklearn import metrics
print(metrics.classification_report(y_new_target, predicted,
... target_names=rawData.target_na