Я создал мультиклассовую модель классификации с помощью линейного SVM. Но я не могу классифицировать новый загруженный фрейм данных (моя база должна быть классифицирована). У меня следующая ошибка.
Что мне нужно сделать, чтобы преобразовать мой новый текст (df.reason_text) в TFID и классифицировать (вызывать model.prediction (?)) с моей моделью?
Обучающая модель
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(ngram_range=(1,2), stop_words=stopwords)
features = tfidf.fit_transform(training.Description).toarray()
labels = training.category_id
model = LinearSVC()
X_train, X_test, y_train, y_test, indices_train, indices_test = train_test_split(features, labels, training.index, test_size=0.33, random_state=0)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
Теперь я не могу преобразовать мой новый фрейм данных для классификации
Загрузка нового фрейма данных по классификации
from pyathena import connect
import pandas as pd
conn = connect(s3_staging_dir='s3://athenaxxxxxxxx/result/',
region_name='us-east-2')
df = pd.read_sql("select * from data.classification_text_reason", conn)
features2 = tfidf.fit_transform(df.reason_text).toarray()
features2.shape
После преобразования текста нового фрейма данных с помощью TFID и его сортировки я получаю следующее сообщение
y_pred1 = model.predict(features2)
error
ValueError: X has 1272 features per sample; expecting 5319
'