Проблема в том, что вы используете fit_transform
, который устанавливает TfidfTransform()
на test data
, а затем преобразует его.
Вместо этого используйте transform
метод.
Кроме того, вы должны использовать TfidfVectorizer
На мой взгляд, код должен быть:
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_transformer = TfidfVectorizer()
# X_counts = count_vect.fit_transform(train_v['doc_text'])
X_tfidf = tfidf_transformer.fit_transform(train_v['doc_text'])
x_train_tfidf, x_test_tfidf, y_train_tfidf, y_test_tfidf = train_test_split(X_tfidf, label_vs, test_size=0.33, random_state=9000)
sgd = SGDClassifier(loss='hinge', penalty='l2', random_state=42, max_iter=25, tol=None, fit_intercept=True, alpha = 0.000009 )
# X_counts_test = count_vect.fit_transform(test_v['doc_text'])
X_tfidf_test = tfidf_transformer.transform(test_v['doc_text'])
predictions_test = clf.predict(X_tfidf_test)
Кроме того, почему вы используете count_vect
Я думаю, что он не имеет смысла здесь и вtrain_test_split
вы используете X_tfidf_r
, который нигде не упоминается.