Я пытаюсь выполнить функцию анализа настроения в некоторых твитах для задания, и у меня возникло несколько проблем.
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)
Вот первый раззона (восточное стандартное время), через которую я хочу выполнить функцию.
Вывод ДОЛЖЕН давать мне правильные числа по порядку (общее значение настроения по ключевым словам в каждом твите, количество ключевых слов из каждого часового пояса и количество твитов из каждого часового пояса),но он не зацикливается, как цикл for, если только я не копирую и не вставляю код из функции для каждого часового пояса.
Но я хочу сделать функцию для этого, а не иметь повторяющийся код.
Помощь приветствуется! Спасибо!