Используя python lib sklearn, я попытался извлечь функции из набора тренировок и поместил в них классификатор BernoulliNB с этими данными.Матрица TfIdf возвращает неправильное количество функций для BernoulliNB
После того, как классификатор прошел обучение, я хочу предсказать (классифицировать) некоторые новые тестовые данные. К сожалению, я получаю эту ошибку:
Traceback (most recent call last):
File "sentiment_analysis.py", line 45, in <module> main()
File "sentiment_analysis.py", line 41, in main
prediction = classifier.predict(tfidf_data)
File "\Python27\lib\site-packages\sklearn\naive_bayes.py", line 64, in predict
jll = self._joint_log_likelihood(X)
File "\Python27\lib\site-packages\sklearn\naive_bayes.py", line 724, in _joint_log_likelihood
% (n_features, n_features_X))
ValueError: Expected input with 4773 features, got 13006 instead
Это мой код:
#Train the Classifier
data,target = load_file('validation/validation_set_5.csv')
tf_idf = preprocess(data)
classifier = BernoulliNB().fit(tf_idf, target)
#Predict test data
count_vectorizer = CountVectorizer(binary='true')
test = count_vectorizer.fit_transform(test)
tfidf_data = TfidfTransformer(use_idf=False).fit_transform(test)
prediction = classifier.predict(tfidf_data)