我正在尝试对某些推文进行情感分析功能,但遇到了一些问题。
1)当我单独使用for循环时,它可以工作,但是当我尝试为某个函数调用它时,它就不起作用,但是如果我仅自己使用for循环,则必须重复相同的代码(因为情感分析考虑了时区,因此我只需要针对不同的时区一遍又一遍地重复代码,而不必多次调用该函数)。
def sentiment_calculations(keywordsFromTweet, wordCounter, tweetCounter, sentimentValue):
tweetCounter += 1
for word1, key1 in valueAndKeywordList:
for j in tweetsWithLatLong:
for i in j:
for k in i:
if k == word1 in keywordList:
keywordsFromTweet.append(k)
wordCounter += 1
for word2, key2 in valueAndKeywordList:
for i in keywordsFromTweet:
if i == word2:
sentimentValue.append(key2)
average = sum(sentimentValue)/wordCounter
finalTuple = (average, wordCounter, tweetCounter)
return finalTuple
这是用于计算每个推文中的关键字,每个推文中的关键字数,推文数和情感值的函数。
keywordsFromTweetEastern = []
sentimentValueFromTweetEastern = []
#Eastern
for i in tweetsWithLatLong:
j = i[0]
if float(j[0]) <= p1[0] and float(j[0]) >= p2[0] and float(j[1]) <= p1[1] and float(j[1]) >= p3[1]:
eastern = sentiment_calculations(keywordsFromTweetEastern, wordCounterEastern, easternTweets, sentimentValueFromTweetEastern)
这是我希望函数运行的第一个时区(东部标准时间)。
输出应该按顺序给我正确的数字(每个推文中关键字的情感总价值,每个时区中的关键字数量以及每个时区中的tweets数量),但不是除非我在每个时区复制并粘贴函数中的代码,否则应该像for循环那样进行循环。
但是我想创建一个函数来执行此操作,而不是使用重复的代码。
感谢您的帮助!谢谢!