Я пытаюсь определить, являются ли заголовки новостей реальными или поддельными.
Для этого я использую CountVectorizer, чтобы вычислить, сколько раз каждое слово используется в каждом предложении.
Проблема в том, что количество слов в предложениях не одинаково, поэтому количество столбцов обучающего набора и набора тестов не совпадает.
Поэтому программа не работает во времяфаза тестирования.
# Vectorized All Data
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(sentenceInput)
result = pd.DataFrame(data = X.toarray())
Итак, переменная «результат» является зависимыми данными.
# Naive Bayes Prediction
from sklearn.naive_bayes import GaussianNB
nb = GaussianNB()
nb.fit(result,targetInput)
Я учил данные системе через целевую переменную.
Проблеманачинается после этой точки.
# Test Data
X = vectorizer.fit_transform(testList)
print(vectorizer.get_feature_names())
print(X.toarray())
testResult = pd.DataFrame(data = X.toarray())
prediction = nb.predict(testResult)
print(prediction)
Я получаю следующую ошибку, когда хочу напечатать «прогноз» на экране.
ValueError: operands could not be broadcast together with shapes (489,1828)
(5273,)
Я не уверен, что проблема точночто я говорю.