TfidfVectorizer - словарь не установлен - PullRequest
0 голосов
/ 20 февраля 2020

Код для импорта модели и запуска прогноза на одном входе

Tfidf_vect = TfidfVectorizer(max_features=5000) # Same classifier as I used in the model
Train_X_IP = Tfidf_vect.transform(["change in the meaning"]).toarray() #Passing the input 
loaded_model = pickle.load(open("finalized_model.sav", 'rb')) #loading the model

predictions_SVM = loaded_model.predict_proba(Train_X_IP)
print(predictions_SVM)


Error I get : TfidfVectorizer - Vocabulary wasn't fitted.

Я видел много статей, предлагающих множество подходов, поэтому я пытался

добавить fit_transform вместо Tfidf_vect.transform но это не решило проблему

Второй вариант, который я пробовал, внешняя загрузка Tfidfvectorizer

 Tfidf_vect = TfidfVectorizer(max_features=5000)
 import pickle
 pickle.dump(Tfidf_vect, open("vectorizer.pickle", "wb"))  
 multilabel_binarizer = joblib.load('vectorizer.pickle')
 Still get the same error : TfidfVectorizer - Vocabulary wasn't fitted.

Это правильный способ использования модели и векторизатора. ?

1 Ответ

1 голос
/ 20 февраля 2020

Вам нужен тот же векторизатор, который вы использовали для обучения модели. Я предполагаю, что вы использовали бы функцию «fit» или «fit_transform» во время обучения. Как только вы это сделаете, сохраните векторизатор в формате pickle из JobLib. Затем загрузите его обратно и используйте функцию преобразования для новых данных, чтобы делать прогнозы.

...