После обучения классификатора я попытался пропустить несколько предложений, чтобы проверить, правильно ли он его классифицирует.
Во время этого тестирования результаты выглядят не очень хорошо.
Полагаю, некоторые переменные неверны.
Пояснение
У меня есть фрейм данных с именем df
, который выглядит следующим образом:
news type
0 From: mathew <mathew@mantis.co.uk>\n Subject: ... alt.atheism
1 From: mathew <mathew@mantis.co.uk>\n Subject: ... alt.space
2 From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Ro... alt.tech
...
#each row in the news column is a document
#each row in the type column is the category of that document
Предварительная обработка:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import accuracy_score
from sklearn.svm import SVC
from sklearn import metrics
vectorizer = TfidfVectorizer( stop_words = 'english')
vectors = vectorizer.fit_transform(df.news)
clf = SVC(C=10,gamma=1,kernel='rbf')
clf.fit(vectors, df.type)
vectors_test = vectorizer.transform(df_test.news)
pred = clf.predict(vectors_test)
Попытка проверить, как классифицируются некоторые предложения
texts = ["The space shuttle is made in 2018",
"stars are shining",
"galaxy"]
text_features = vectorizer.transform(texts)
predictions = clf.predict(text_features)
for text, predicted in zip(texts, predictions):
print('"{}"'.format(text))
print(" - Predicted as: '{}'".format(df.type[pred]))
print("")
Проблема в том, что он возвращает это:
"The space shuttle is made in 2018"
- Predicted as: 'alt.atheism NaN
alt.atheism NaN
alt.atheism NaN
alt.atheism NaN
alt.atheism NaN
Что вы думаете?
РЕДАКТИРОВАТЬ
Пример
Этовроде как должно выглядеть:
>>> docs_new = ['God is love', 'OpenGL on the GPU is fast']
>>> 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, twenty_train.target_names[category]))
...
'God is love' => soc.religion.christian
'OpenGL on the GPU is fast' => comp.graphics