感情が割り当てられた単語のリスト (ファイル 2、タブ区切り、2 列) に対して、ツイート (ファイル 1、標準の twitter json 応答) の感情分析を行うのに問題があります (ポジティブまたはネガティブ)。
問題は、一番上のループが 1 回しか実行されず、ファイル 1 をループしている間にスクリプトが終了し、ファイル 2 をループしている間にスクリプトが終了し、その中でファイル 2 をループし、各ツイートの結合された感情の現在の合計を比較して保持しようとすることです。
ので、私は持っています:
def get_sentiments(tweet_file, sentiment_file):
sent_score = 0
for line in tweet_file:
document = json.loads(line)
tweets = document.get('text')
if tweets != None:
tweet = str(tweets.encode('utf-8'))
#print tweet
for z in sentiment_file:
line = z.split('\t')
word = line[0].strip()
score = int(line[1].rstrip('\n').strip())
#print score
if word in tweet:
print "+++++++++++++++++++++++++++++++++++++++"
print word, tweet
sent_score += score
print "====", sent_score, "====="
#PROBLEM, IT'S ONLY DOING THIS FOR THE FIRST TWEET
file1 = open(tweetsfile.txt)
file2 = open(sentimentfile.txt)
get_sentiments(file1, file2)
file2 のネストされた for ループを使用せずにすべてのツイートを出力する理由を理解するために半日を費やしましたが、それを使用すると、最初のツイートのみを処理してから終了します。