Я надеялся, что Mr_U4913 собирался добавить это, но вместо этого я сделаю это.
попробуйте это для своего тестового кода:
test
df = pandas.read_csv(input_file, header=None)
df.columns = ["data", "target"]
df, y = df.data, df.target
test_documents = []
for body in range(0, len(df)):
document = str(df[body])
test_documents.append(document)
X = vectorizer.transform(test_documents).toarray() #here is where change is!
prediction = pd.DataFrame(classifier.predict(X))
Обратите внимание на изменение. ..мы теперь используем метод преобразования для векторизатора. Я предполагаю, что вы можете поместить этот тестовый код в тот же файл, что и ваш обучающий код, чтобы ваш объект векторизатора был еще жив.
Причина, по которой вы используете преобразование и не fit_transform, заключается в том, что у вас естьобучить вашу модель с использованием векторизатора, снабженного определенным словарем, и во время тестирования могут появиться новые слова. Использование существующего векторизатора игнорирует эти новые слова / комбинации и будет служить для поддержания гармонии ваших векторов tdif. В отличие от использования fit_transform, который воссоздает, возможно, совсем по-другому, ваш векторизатор, который будет иметь небольшие / большие различия.
edit: вы также можете попробовать классификатор логистики ... иногда это дает приличные результаты в этомсортировка данных.