VADER: настроение для каждого предложения - PullRequest
0 голосов
/ 21 ноября 2018

Я новичок в Python, и у меня есть набор данных, который выглядит следующим образом

enter image description here

Я извлекаю отзывы из набора данных и пытаюсь применитьинструмент VADER для проверки весов настроений, связанных с каждым обзором.Я могу успешно получить отзывы, но не могу применить VADER к каждому отзыву.Это код

import nltk
    import requirements_elicitation
    from nltk.sentiment.vader import SentimentIntensityAnalyzer

c = requirements_elicitation.read_reviews("D:\\Python\\testml\\my-tracks-reviews.csv")
class SentiFind:
    def init__(self,review):
        self.review = review

for review in c:
    review = review.comment
    print(review)

sid = SentimentIntensityAnalyzer()
for i in review:
    print(i)
    ss = sid.polarity_scores(i)
    for k in sorted(ss):
        print('{0}: {1}, '.format(k, ss[k]), end='')
    print()

Пример вывода:

g
compound: 0.0, neg: 0.0, neu: 0.0, pos: 0.0, 
r
compound: 0.0, neg: 0.0, neu: 0.0, pos: 0.0, 
e
compound: 0.0, neg: 0.0, neu: 0.0, pos: 0.0, 
a
compound: 0.0, neg: 0.0, neu: 0.0, pos: 0.0, 
t
compound: 0.0, neg: 0.0, neu: 0.0, pos: 0.0, 

compound: 0.0, neg: 0.0, neu: 0.0, pos: 0.0, 
a
compound: 0.0, neg: 0.0, neu: 0.0, pos: 0.0, 
p
compound: 0.0, neg: 0.0, neu: 0.0, pos: 0.0, 
p

Мне нужно настроить ярлыки для каждого отзыва, а также что-то вроде этого

"Total weight: {0}, Negative: {1}, Neutral: {2}, Positive: {3}".

1 Ответ

0 голосов
/ 21 ноября 2018

review, который вы определили, является string, поэтому, когда вы просматриваете его, вы получаете каждую букву:

for i in review:
   print(i)

g
r
e
a...

Таким образом, вы захотите, чтобы анализатор пошел накаждый отзыв:

sid = SentimentIntensityAnalyzer()

for review in c:
    review = review.comment
    ss = sid.polarity_scores(review)
    total_weight = ss.compound
    positive = ss.pos
    negative = ss.neg
    neutral = ss.neu
    print("Total weight: {0}, Negative: {1}, Neutral: {2}, Positive: {3}".format(total_weight, positive, negative, neutral))
...