【发布时间】:2019-08-10 17:21:19
【问题描述】:
我已经使用这个数据集创建了一个模型,我想插入一些句子来看看它们是如何分类的。我该怎么做?
这是制作模型的代码:
from sklearn.datasets import fetch_20newsgroups
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn import metrics
cats = ['sci.space','rec.autos']
newsgroups_train = fetch_20newsgroups(subset='train',
remove=('headers', 'footers', 'quotes'), categories = cats)
newsgroups_test = fetch_20newsgroups(subset='test',
remove=('headers', 'footers', 'quotes'), categories = cats)
vectors_test = vectorizer.transform(newsgroups_test.data)
vectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(newsgroups_train.data)
clf = MultinomialNB(alpha=.01)
clf.fit(vectors, newsgroups_train.target)
vectors_test = vectorizer.transform(newsgroups_test.data)
pred = clf.predict(vectors_test)
metrics.f1_score(newsgroups_test.target, pred, average='macro')
返回的准确率是:0.97,表示存在过拟合。
如前所述,我想测试未见数据的分类是如何发生的。我该如何继续?
我试过的例子:
texts = ["The space shuttle is made in 2018",
"The exhaust is noisy.",
"the windows are transparent."]
text_features = tfidf.transform(texts)
predictions = model.predict(text_features)
for text, predicted in zip(texts, predictions):
print('"{}"'.format(text))
print(" - Predicted as: '{}'".format(id_to_category[predicted]))
print("")
#this does not work as it is
它应该将每个句子分类到两个(sci.space、rec.autos)类别之一。
此外,欢迎您对整个代码提出任何其他建议。我想很好地学习这些过程。
【问题讨论】:
标签: python scikit-learn nlp