#python #classification #naivebayes
#python #классификация #наивный ответ
Вопрос:
мой код является наивным байесовским классификатором, и я хочу подсчитать положительные и отрицательные предложения
pos_count=0
neg_count=0
file = open("a-samples.txt","r")
for line in file:
custom_tokens = remove_noise(word_tokenize(line))
print('n',line,'n',classifier.classify(dict([token, True] for token in custom_tokens)))
if (classifier.classify(dict([token, True] for token in custom_tokens) = "Positive"
pos_count=pos_count 1
elif (classifier.classify(dict([token, True] for token in custom_tokens)="Negative"
neg_count=neg_count 1
print ("pos =",pos_count,'n',"neg= ",neg_count)
Комментарии:
1. Пожалуйста, отправьте всю обратную трассировку с вашим вопросом. это поможет другим определить проблему в вашем коде
Ответ №1:
Перейдите classifier.classify(dict([token, True] for token in custom_tokens
в одну переменную.
Замените =
на ==
в операции сравнения ( if-elif-else
блок). Завершите условия с :
помощью .
Ответ №2:
Вы должны заменить ‘=’ на ‘==’. И завершите оператор if с помощью ‘:’. То же самое с elif.
if (classifier.classify(dict([token, True] for token in custom_tokens) == "Positive":
Ответ №3:
Ошибка заключалась в dict([token, True] for token in custom_tokens)
том, что вы могли использовать определения dict, и вы должны использовать ==
операторы in if .
Я не уверен, что делает функции remove_noise или classifier.clasify, поэтому я предполагаю, что вы пытаетесь сделать что-то подобное:
pos_count = 0
neg_count = 0
file = open("a-samples.txt", "r")
for line in file:
custom_tokens = remove_noise(word_tokenize(line))
print('n', line, 'n', classifier.classify({token: True for token in custom_tokens}))
if (classifier.classify({token: True for token in custom_tokens})) == "Positive":
pos_count = pos_count 1
elif (classifier.classify({token: True for token in custom_tokens})) == "Negative":
neg_count = neg_count 1
print ("pos =", pos_count, 'n', "neg= ", neg_count)