Проблема в пользовательском вводе или данных текстового файла в анализе настроений - PullRequest
0 голосов
/ 17 февраля 2020

Я новичок в Python -NLTK. Я написал свой код, используя набор данных mov ie reviews. Когда я помещаю образец текста в жестком коде для анализа настроений, он работает нормально, но когда я пытаюсь взять ввод данных пользователем или извлечь данные из текстового файла, он показывает разделение по алфавиту.

, например, когда образец текста жестко запрограммирован как ["Musi c был потрясающим", "Спецэффекты потрясающие"] Тогда расщепление похоже на обзор: Musi c было потрясающим. или извлеките данные из текстового файла, тогда он покажет обзор как; Обзор: M Обзор: u Обзор: S Обзор: i Обзор: c Обзор:.

# Для текстового файла Ниже приведен пример кода.

t = open ("Sample1.txt", "r")           
File_input = (t.read())
for review in File_input:
  print ("\nReview:", review)
  probdist = classifier.prob_classify(extract_features(review.split()))
  pred_sentiment = probdist.max()

print ("Predicted sentiment:", pred_sentiment) 
print ("Probability:", round(probdist.prob(pred_sentiment), 5))

# Для пользовательского ввода Ниже приведен пример кода.

User_input = input("Enter your value: ")
for review in User_input:
  print ("\nReview:", review)
  probdist = classifier.prob_classify(extract_features(review.split()))
  pred_sentiment = probdist.max()
print ("Predicted sentiment:", pred_sentiment) 
print ("Probability:", round(probdist.prob(pred_sentiment), 3))

Руководство по PLZ. Спасибо!

1 Ответ

0 голосов
/ 17 февраля 2020

переменная User_input является строкой, поэтому итерация по ней - это итерация по символам, что вы хотите сделать, это удалить for l oop и рассматривать User_input как обзор, предполагая, что он содержит 1 отзыв в противном случае вы можете определить разделяющий символ между отзывами и выполнить итерацию следующим образом:

for review in User_input.split(sep_char):
...