【发布时间】:2017-05-25 08:29:11
【问题描述】:
我正在尝试创建一个分类为健康和不健康的食物推文数据集。我编写了两个脚本,它们正在流式传输具有我指定的关键字的推文,然后我对其进行了情绪分析,这样我就可以很容易地进行分类它们分为健康和不健康,但文本 blob 的情感分析并不那么令人满意,脚本还获取不包含这些关键字的推文。 如果有人知道食物推文数据集,那将很有帮助。
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import time
import os
from textblob import TextBlob
import json
ck`enter code here`ey = "xxx"
csecret = "xx"
atok`enter code here`en = "xx"
asecret = "xx"
class listener(StreamListener):
def on_data(self, data):
try:
tweet = data.split(',"text":"')[1].split('","source')[0]
print tweet
saveThis = str(time.time()) + '::' + tweet
#tweet = data.split(',"text":"')[1]
analysis=TextBlob(tweet)
polarity=analysis.sentiment.polarity
print(polarity)
if polarity <0 :
#username = data["user"]["screen_name"]
saveThis = tweet + '::' + str(polarity)
out = open('out1.csv', 'a')
out.write(saveThis)
out.write('\n')
out.close()
#return (True)
#saveThis = str(time.time()) + '::' + tweet + '::' + str(polarity)
#saveFile = open('unhealthytweet1.json', 'a')
#saveFile.write(saveThis)
#saveFile.write('\n')
#saveFile.close()
return (True)
elif polarity>0 :
#username = data["user"]["screen_name"]
#username, " :: ",
saveThis =tweet + '::' + str(polarity)
out = open('out2.csv', 'a')
out.write(saveThis)
out.write('\n')
out.close()
# return (True)
# saveThis = str(time.time()) + '::' + tweet + '::' + str(polarity)
# saveFile = open('unhealthytweet1.json', 'a')
# saveFile.write(saveThis)
# saveFile.write('\n')
# saveFile.close()
return (True)
except BaseException, e:
print 'failed on_date,', str(e)
time.sleep(5)
pass
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track=["vegetable soup", "fruits", "green tea", "vegetables", "fresh juice", "salad","sea food"], languages=['en'])
#
【问题讨论】: