Я написал этот код .что не так?? ошибка (недопустимый синтаксис)

#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)