2017-05-25 4 views
0

Ich versuche, ein Dataset von Essen Tweets als gesund und ungesund klassifiziert zu erstellen. Ich schrieb zwei Skripte, die die Tweets streamen mit Schlagworten habe ich angegeben und dann habe ich Sentiment-Analyse darauf angewendet, so wird es sein Es ist einfach für mich, sie in gesund und ungesund zu klassifizieren, aber die Sentimentanalyse von Textblobs ist nicht sehr befriedigend und das Skript ruft auch Tweets ab, die diese Schlüsselwörter nicht enthalten. Wenn jemand Tweets Datensatz wissen, so wäre das sehr hilfreich.Twitter Sentiment Analyse mit Python

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']) 
# 

Antwort

0

Ich bin wirklich neu in der Programmierung, aber ich hatte ähnliche Probleme mit dir. Was ich gefunden habe und das mag falsch sein, aber es funktioniert mit meinem Programm, ist eine rohe Eingabe für das Schlüsselwort, das diese Variable über den Listener weiterleitet, dann läuft ein if in data ['text'] < ¬ ¬ ich habe das auch in der Nähe referenziert oben als Variable mit einer Codierung ('utf-8').

Wenn die Schlüsselwörter nicht drin sind, dann pass einfach.

Verwandte Themen