2016-08-08 10 views
-1

Ich verwende vader sentiment, um CSV-Dateien voller Tweets zu analysieren. Ich versuche, einen Durchschnittswert für jeden der Stimmungswerte für den gesamten Tweets-Satz zu erhalten. Aus irgendeinem Grund neigen viele der Ergebnisse dazu, Werte von 0 zu ergeben, was keinen Sinn ergibt, es sei denn, es handelt sich um ein Rundungsproblem. Auch len (Ergebnis [i]) gibt immer 1. Mein Code ist wie folgt:Vader Sentiment-Werte werden nicht korrekt ausgegeben

for row in csv.reader(csv_file): 
    result = { 'pos':[] , 'neg':[], 'compound':[], 'neu':[] } 
    sentences = row 
    f = open(file_name[0], 'a', newline='') 
    writer = csv.writer(f) 
    for sentence in sentences: 
     vs = vaderSentiment(sentence) 
     row = [sentence, str(vs)] 
     writer.writerow(row) 
     result['pos'].append(vs['pos']) 
     result['neg'].append(vs['neg']) 
     result['compound'].append(vs['compound']) 
     result['neu'].append(vs['neu']) 
print('sum:') 
for i in result.keys(): 
    print('\t',i, '=>', float(sum(result[i]))/len(result[i])) 
f.close() 
+0

Wie sehr nett, dass Leute wählen, um zu downvoten und keine Hilfe oder Erklärung dafür zu bieten. –

+0

Sie haben Ihre Eingabedaten nicht zur Verfügung gestellt, oder was Sie als Ausgabe erwartet haben. Noch wo du diese "VaderSentiment" -Funktion hast. –

+0

Danke, das ist fair. Ich hatte mein Gesicht in letzter Zeit ziemlich vergraben, also vergaß ich, dass es für einige Leute vage sein könnte. Vader Sentiment ist ein beliebtes Sentiment-Analyse-Paket in Python. Es ist ziemlich interessant, aber es gibt sehr wenig Dokumentation darüber. –

Antwort

0

Nevermind, ich merkte, ich dummerweise Platzierung wurde Ergebnis = { 'pos': [], 'neg': [], 'compound': [], 'neu': []} wo ich nicht hätte, also löschte es die Daten bei jeder Iteration der Schleife. Ich kann nicht glauben, dass es so lange gedauert hat, um herauszufinden ...

Verwandte Themen