Анализ настроений в Python - TextBlob - PullRequest
0 голосов
/ 29 апреля 2020

Я все еще новичок в python и изучаю, и один из моих курсов ожидает, что я буду использовать TextBlob и Pandas для анализа настроений в файле cvs. То, что я сделал до сих пор, я приложу здесь:

Import csv
from textblob import TextBlob
import pandas as pd

df = pd.read_csv('Movie_reviews.csv', delimiter='\t', header=None)

Movie_review_texts = df[2]
Movie_review_texts

for intex, review_text in enumerate (Movie_review_texts):
    blob = TextBlob(review_text)
    print('Analysing review\t', review_text)
    for sentence in blob.sentences: 
        print('--------SENTIMENT OF SENTENCE--------')
        print(sentence, '\t', sentence.sentiment.polarity)
        print('-------END-------')

, однако, что мне нужно сделать сейчас, это то, что мне нужно агрегировать оценки настроения составляющих предложений, а затем преобразовать агрегированную оценку в логическое значение. Что я действительно очень борюсь, я готов сдаться в этот момент!

1 Ответ

0 голосов
/ 08 мая 2020

Пока все хорошо. Это одна из моих работ, и она поможет вам выполнить то, что вы ищете.

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
import time
analyzer = SentimentIntensityAnalyzer()

pos_count = 0
pos_correct = 0

with open("D:/Corona_Vac/pythonprogramnet/Positive BOW.txt","r") as f:
    for line in f.read().split('\n'):
        vs = analyzer.polarity_scores(line)
        if not vs['neg'] > 0.1:
            if vs['pos']-vs['neg'] > 0:
                pos_correct += 1
            pos_count +=1


neg_count = 0
neg_correct = 0

with open("D:/Corona_Vac/pythonprogramnet/Positive BOW.txt","r") as f:
    for line in f.read().split('\n'):
        vs = analyzer.polarity_scores(line)
        if not vs['pos'] > 0.1:
            if vs['pos']-vs['neg'] <= 0:
                neg_correct += 1
            neg_count +=1

print("Positive accuracy = {}% via {} samples".format(pos_correct/pos_count*100.0, pos_count))
print("Negative accuracy = {}% via {} samples".format(neg_correct/neg_count*100.0, neg_count))

Надеюсь, вы найдете способ. Спасибо.

...