У меня есть большой CSV с тысячами комментариев из моего блога, которые я хотел бы провести анализ настроений при использовании textblob и nltk.
Я использую скрипт Python из https://wafawaheedas.gitbooks.io/twitter-sentiment-analysis-visualization-tutorial/sentiment-analysis-using-textblob.html,но модифицированный для Python3.
'''
uses TextBlob to obtain sentiment for unique tweets
'''
from importlib import reload
import csv
from textblob import TextBlob
import sys
# to force utf-8 encoding on entire program
#sys.setdefaultencoding('utf8')
alltweets = csv.reader(open("/path/to/file.csv", 'r', encoding="utf8", newline=''))
sntTweets = csv.writer(open("/path/to/outputfile.csv", "w", newline=''))
for row in alltweets:
blob = TextBlob(row[2])
print (blob.sentiment.polarity)
if blob.sentiment.polarity > 0:
sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "positive"])
elif blob.sentiment.polarity < 0:
sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "negative"])
elif blob.sentment.polarity == 0.0:
sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "neutral"])
Однако, когда я запускаю это, я постоянно получаю
$ python3 sentiment.py
Traceback (most recent call last):
File "sentiment.py", line 17, in <module>
blob = TextBlob(row[2])
IndexError: list index out of range
Я знаю, что означает ошибка, но я не уверен, что мне нужносделать, чтобы исправить.
Есть мысли о том, что мне не хватает?Спасибо!