Traceback (most recent call last):
File "D:\myscripts\NewTermSentimentInference.py", line 88, in <module>
main()
File "D:\myscripts\NewTermSentimentInference.py", line 34, in main
tweets = tweet_dict(twitterData)
File "D:\myscripts\NewTermSentimentInference.py", line 15, in tweet_dict
twitter_list_dict.append(line[0])
IndexError: list index out of range
代码:
twitterData = sys.argv[0] # csv file
def tweet_dict(twitterData):
''' (file) -> list of dictionaries
This method should take your csv file
file and create a list of dictionaries.
'''
twitter_list_dict = []
twitterfile = open(twitterData)
twitterreader = csv.reader(twitterfile)
for line in twitterreader:
**twitter_list_dict.append(line[1])**
return twitter_list_dict
def sentiment_dict(sentimentData):
''' (file) -> dictionary
This method should take your sentiment file
and create a dictionary in the form {word: value}
'''
afinnfile = open(sentimentData)
scores = {} # initialize an empty dictionary
for line in afinnfile:
term, score = line.split("\t") # The file is tab-delimited. "\t" means "tab character"
scores[term] = float(score) # Convert the score to an integer.
return scores # Print every (term, score) pair in the dictionary
def main():
tweets = tweet_dict(twitterData)
sentiment = sentiment_dict("AFINN-111.txt")
accum_term = dict()
"""Calculating sentiment scores for the whole tweet with unknown terms set to score of zero
See -> DeriveTweetSentimentEasy
"""
for index in range(len(tweets)):
tweet_word = tweets[index].split()
sent_score = 0 # sentiment of the sentence
term_count = {}
term_list = []
尝试进行情绪分析,但在试图从csv文件创建字典的方法中的行中面对索引错误,该文件有从twitter访问过的推文,有人可以请帮助我用它?
答案 0 :(得分:0)
检查输入CSV是否为空行。
如果twitter_list_dict.append(line[0])
是一个空列表,则line
会抛出'list index out of range'错误,因此没有第一个要引用的元素。最可能的罪魁祸首:CSV中的一行或多行是空的,这会导致csv.reader
返回line
的空列表。
如果预期CSV中有空行,您可以通过添加检查来跳过它们以确保该行不为空:
for line in twitterreader:
if line: # Check if line is non-empty
twitter_list_dict.append(line[0])
return twitter_list_dict