TfIdfVectorizer와 MultinomialNB를 사용하여 모델을 훈련 시켰고 피클 파일에 저장했습니다.tfidfvectorizer 저장된 분류자를 예측하십시오.
보이지 않는 데이터를 예측하기 위해 다른 파일의 분류자를 사용하려고 했으므로 분류 자의 기능 수가 내 기능의 수와 같지 않다는 이유로 말할 수 없습니다. 현재의 코퍼스.
이것은 예측하려는 코드입니다. do_vectorize 함수는 훈련시 사용 된 함수와 똑같습니다.
def do_vectorize(data, stop_words=[], tokenizer_fn=tokenize):
vectorizer = TfidfVectorizer(stop_words=stop_words, tokenizer=tokenizer_fn)
X = vectorizer.fit_transform(data)
return X, vectorizer
# Vectorizing the unseen documents
matrix, vectorizer = do_vectorize(corpus, stop_words=stop_words)
# Predicting on the trained model
clf = pickle.load(open('../data/classifier_0.5_function.pkl', 'rb'))
predictions = clf.predict(matrix)
그러나 나는이 나는 또한 테스트하기 위해 훈련에서 내 어휘를 저장해야 의미
ValueError: Expected input with 65264 features, got 472546 instead
기능의 수가 다르다는 오류가 발생? 훈련에 존재하지 않는 용어가 있다면 어떻게됩니까?
나는 같은 벡터 라이저와 분류자를 사용하여 scikit-learn에서 파이프 라인을 사용하려고 시도했으며 두 가지 모두에 대해 동일한 매개 변수를 사용하려고했습니다. 그러나 1 시간에서 6 시간 이상으로 너무 느려 졌으므로 수동으로 수행하는 것을 선호합니다.