Я пытаюсь сохранить векторизатор / модель TfIdf (не знаю, правильное ли это слово или нет), полученный после обучения набора данных и последующей загрузки сохраненной модели, чтобы соответствовать новому набору данных.Модель хранится и загружается с использованием pickle
Я сохранил словарь TfIdf, полученный на этапе обучения.Затем я загружаю сохраненный словарь в векторизатор, чтобы соответствовать тестовым данным
def Savetfidf(df):
vectorizer = TfidfVectorizer(min_df=0.0, analyzer="char", sublinear_tf=True, ngram_range=(1,2))
X = pd.SparseDataFrame(vectorizer.fit_transform(df), columns = vectorizer.get_feature_names(), default_fill_value = 0)
pickle.dump(vectorizer.vocabulary_, open("features.pkl", "wb"))
return X
def Loadtfidf(df):
vectorizer = TfidfVectorizer(min_df=0.0, analyzer="char", sublinear_tf=True, ngram_range=(1,2))
vocabulary = pickle.load(open(feature, 'rb'))
vectorizer.vocabulary_ = vocabulary
X = pd.SparseDataFrame(vectorizer.transform(df), columns = vectorizer.get_feature_names(), default_fill_value = 0)
return X
Я получаю сообщение об ошибке
"sklearn.exceptions.NotFittedError: idf vector not fit"
Насколько я знаю, он пытается сохранить целое 'X' отдельно, используя idf_ и vocabulary_.Но я просто хочу сохранить модель / векторизатор (не знаю), чтобы при следующей загрузке модели / векторизатора мне просто нужно было вызывать vectorizer.fit () для тестовых данных, не нужно использовать обучающие данныевызвать fit_transform ().Есть ли способ сделать это?