导入模型并在单个输入上运行预测的代码
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.这是使用模型和向量器的正确方法吗??
发布于 2020-02-19 22:39:08
首先,您需要相同的向量器来训练模型。我假设您会在培训期间使用"fit“或"fit_transform”函数。一旦您这样做,保存矢量器的泡菜的joblib格式。然后重新加载它,并使用对新数据的transform函数进行预测。
https://stackoverflow.com/questions/60309973
复制相似问题