def GET(self):
        query = web.ctx.get('query')
        html = html_helper.HTMLHelper()
        twitterData = get_twitter_data.TwitterData()
        if query:
            if(query[0] == '?'):
                query = query[1:]
            arr = query.split('&')
            logging.warning(arr)
            
            #default values
            time = 'daily'

            for item in arr:
                if 'keyword' in item:
                    keyword = item.split('=')[1]
                elif 'method' in item:
                    method = item.split('=')[1]
                elif 'time' in item:
                    time = item.split('=')[1]
            #end loop
                            
            if(method != 'baseline' and method != 'naivebayes' and method != 'maxentropy' and method != 'svm'):
                return html.getDefaultHTML(error=2)
            
            tweets = twitterData.getTwitterData(keyword, time)
            if(tweets):
                if(method == 'baseline'):
                    bc = baseline_classifier.BaselineClassifier(tweets, keyword, time)
                    bc.classify()
                    return bc.getHTML()
                elif(method == 'naivebayes'):
                    trainingDataFile = 'data/training_neatfile_2.csv'               
                    #classifierDumpFile = 'data/naivebayes_trained_model.pickle'
                    classifierDumpFile = 'data/test/naivebayes_test_model.pickle'
                    trainingRequired = 0
                    nb = naive_bayes_classifier.NaiveBayesClassifier(tweets, keyword, time, \
                                                  trainingDataFile, classifierDumpFile, trainingRequired)
                    nb.classify()
                    return nb.getHTML()
                elif(method == 'maxentropy'):
                    trainingDataFile = 'data/training_neatfile.csv'                
                    classifierDumpFile = 'data/maxent_trained_model.pickle'
                    trainingRequired = 0
                    maxent = max_entropy_classifier.MaxEntClassifier(tweets, keyword, time, \
                                                  trainingDataFile, classifierDumpFile, trainingRequired)
                    maxent.classify()
                    return maxent.getHTML()
                elif(method == 'svm'):
                    trainingDataFile = 'data/training_neatfile.csv'                
                    classifierDumpFile = 'data/svm_trained_model.pickle'
                    trainingRequired = 0
                    sc = libsvm_classifier.SVMClassifier(tweets, keyword, time, \
                                                  trainingDataFile, classifierDumpFile, trainingRequired)
                    sc.classify()
                    return sc.getHTML()
            else:
                return html.getDefaultHTML(error=1)
        else:
            return html.getDefaultHTML()
Exemplo n.º 2
0
def search():
	
	keyword = request.args.get('keyword')
	method = request.args.get('method')
	time = 'daily'
	time = request.args.get('time')

	html = html_helper.HTMLHelper()
	#print html
	twitterData = get_twitter_data.TwitterData()
	#print twitterData
	if keyword:	                    
		if(method != 'baseline' and method != 'naivebayes' and method != 'maxentropy'):
		    return html.getDefaultHTML(error=2)
		ACCESS_TOKEN =  session['oauth_token']
		ACCESS_TOKEN_SECRET = session['oauth_secret']
		tweets = twitterData.getTwitterData(keyword, time,CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
		print tweets,"-------------------------"
		if(tweets):
		    if(method == 'baseline'):
		        bc = baseline_classifier.BaselineClassifier(tweets, keyword, time)
		        bc.classify()
		        return bc.getHTML()
		    elif(method == 'naivebayes'):
		        trainingDataFile = 'data/training_neatfile_2.csv'               
		        classifierDumpFile = 'data/naivebayes_trained_model.pickle'
		        #classifierDumpFile = 'data/test/naivebayes_test_model.pickle'
		        trainingRequired = 0
		        nb = naive_bayes_classifier.NaiveBayesClassifier(tweets, keyword, time, \
		                                      trainingDataFile, classifierDumpFile, trainingRequired)
		        nb.classify()
		        return nb.getHTML()
		    elif(method == 'maxentropy'):
		        trainingDataFile = 'data/training_neatfile.csv'                
		        classifierDumpFile = 'data/maxent_trained_model.pickle'
		        trainingRequired = 0
		        maxent = max_entropy_classifier.MaxEntClassifier(tweets, keyword, time, \
		                                      trainingDataFile, classifierDumpFile, trainingRequired)
		        maxent.classify()
		        return maxent.getHTML()
		else:
		    return html.getDefaultHTML(error=1)
	else:
		return html.getDefaultHTML()
def submit(keyword,time):
    print "Analysing "+keyword+ " for "+time+" : \n"
    twitterData = get_twitter_data.TwitterData()
    tweets = twitterData.getTwitterData(keyword, time)
    print "The collected tweets are : \n"
    trainingDataFile = 'data/training_neatfile.csv'
    classifierDumpFile = 'data/maxent_trained_model.pickle'
    trainingRequired = 0
    maxent = max_entropy_classifier.MaxEntClassifier(tweets, keyword, time, \
                              trainingDataFile, classifierDumpFile, trainingRequired)
    maxent.classify()
    val,val2,time,pos_count,neg_count,neut_count=maxent.print_value()
    items=len(val2)-1
    for i in range(0,items):
        print val[i]+ " : " + val2[i]+ "\n"
    print "The positive count be : "+str(pos_count)
    print "The negative count be : "+str(neg_count)
    print "The neutral count be : "+str(neut_count)
    return 0
def submit():
    try:
        keyword=request.form['yourname']
        time=request.form['options']
        twitterData = get_twitter_data.TwitterData()
        tweets = twitterData.getTwitterData(keyword, time)
        classifier = request.form['c']
        if classifier=="maxent":
            print "Maxent chosen"
            trainingDataFile = 'data/training_neatfile.csv'
            classifierDumpFile = 'data/maxent_trained_model.pickle'
            trainingRequired = 0
            maxent = max_entropy_classifier.MaxEntClassifier(tweets, keyword, time, \
                                      trainingDataFile, classifierDumpFile, trainingRequired)
            maxent.classify()
            val,val2,time,pos_count,neg_count,neut_count=maxent.print_value()
            pos_tweet,neg_tweet,neut_tweet=process(val,val2)
            print "maxent finished"
        else:
            trainingDataFile = 'data/training_neatfile.csv'                
            classifierDumpFile = 'data/svm_trained_model.pickle'
            trainingRequired = 0
            sc = libsvm_classifier.SVMClassifier(tweets, keyword, time, \
                                          trainingDataFile, classifierDumpFile, trainingRequired)
            sc.classify()
            print "classified"
            val,val2,time,pos_count,neg_count,neut_count=sc.print_value()
            pos_tweet,neg_tweet,neut_tweet=process(val,val2)
        res=str(pos_count)+" "+str(neut_count)+" "+str(neg_count)
        count = dbcon.Searchresults.select().count()
        if time == 'today':
            dbcon.Searchresults.create(time = get_time('today'),search_id=count+1,search_keyword=keyword,search_result=res,classifier_used=str(classifier))
            return render_template('form_action.html', name=keyword, option=get_time(time), pos_count=pos_count, neg_count=neg_count, neut_count=neut_count, pos_tweet=pos_tweet, neg_tweet=neg_tweet, neut_tweet=neut_tweet)
        elif time == 'lastweek':
            dbcon.Searchresults.create(time = get_time('week'),search_id=count+1,search_keyword=keyword,search_result=res,classifier_used=str(classifier))
            return render_template('form_action_weekly.html', name=keyword, option=get_time(time), pos_count=pos_count, neg_count=neg_count, neut_count=neut_count, pos_tweet=pos_tweet, neg_tweet=neg_tweet, neut_tweet=neut_tweet)
        else:
        	return render_template('form_submit.html',sorry="T")
    except:
        return render_template('form_submit.html',sorry="Y")
    def GET(self):
        query = web.ctx.get('query')
        html = html_helper.HTMLHelper()
        twitterData = get_twitter_data.TwitterData()
        if query:
            if (query[0] == '?'):
                query = query[1:]
            arr = query.split('&')
            logging.warning(arr)

            #default values
            time = 'daily'

            for item in arr:
                if 'keyword' in item:
                    keyword = item.split('=')[1]
                elif 'time' in item:
                    time = item.split('=')[1]
            #end loop

            tweets = twitterData.getTwitterData(keyword, time)
            if (tweets):
                trainingDataFile = 'fulltrainingdataset-csv.csv'
                #classifierDumpFile = 'data/naivebayes_trained_model.pickle'
                classifierDumpFile = 'my_final_classifier2.pickle'
                trainingRequired = 0
                nb = naive_bayes_classifier.NaiveBayesClassifier(tweets, keyword, time, \
                                              trainingDataFile, classifierDumpFile, trainingRequired)
                nb.classify()
                #nb.main()#added for testing
                #nb.accuracy()
                return nb.getHTML()
            else:
                return html.getDefaultHTML(error=1)
        else:
            return html.getDefaultHTML()
Exemplo n.º 6
0
print "-------------------------------------------------"

response = raw_input("Please enter Keyword: ")

while not response:
    response = raw_input("Please enter Keyword: ")


# Get Tweets
keyword = '$'+response
# time = 'today'
time = 'lastweek'

print "Fetch twitter data for "+ response+" company keyword...."

twitterData = get_twitter_data.TwitterData('2016-04-18')
tweets = twitterData.getTwitterData(keyword, time)

print "Twitter data fetched \n"

print "Fetch yahoo finance data for "+response+" given company keyword.... "
keyword2 = response
yahooData = get_yahoo_data.YahooData('2016-04-01', "2016-04-17")
historical_data = yahooData.getYahooData(keyword2)
yahoo_open_price = {}
yahoo_close_price = {}
yahoo_high_price = {}
yahoo_low_price = {}
for i in range(len(historical_data)):
    date = historical_data[i]['Date'].replace(",","")
    yahoo_open_price.update({date: historical_data[i]['Open']})
#!/usr/bin/env python
import get_twitter_data

## PLACE YOUR CREDENTIALS in config.json file or run this file with appropriate arguments from command line
keyword = 'Donald Trump'
time = 'today'
twitterData = get_twitter_data.TwitterData()
tweets = twitterData.getTwitterData(keyword, time)
print tweets
print "-------------------------------------------------"
print "-------------------------------------------------"

response = raw_input("Please enter Keyword: ")

while not response:
    response = raw_input("Please enter Keyword: ")

# Get Tweets
keyword = '$' + response
# time = 'today'
time = 'lastweek'

print "Fetch twitter data for " + response + " company keyword...."

twitterData = get_twitter_data.TwitterData('2017-05-23')
tweets = twitterData.getTwitterData(keyword, time)

print "Twitter data fetched \n"

print "Fetch yahoo finance data for " + response + " given company keyword.... "
keyword2 = response
quandl.ApiConfig.api_key = "nFXzo5mjYxKTdFvxmx1E"
# yahooData = get_yahoo_data.YahooData('2017-05-14', "2017-05-18")
# historical_data = yahooData.getYahooData(keyword2)
historical_data = quandl.get('WIKI/' + keyword2,
                             start_date="2017-05-10",
                             end_date="2017-05-23",
                             returns="numpy")
yahoo_open_price = {}
yahoo_close_price = {}
Exemplo n.º 9
0
    keyword = response
    response = '$' + keyword

print(response)
print(keyword)

# Get Tweets
# keyword = '$'+response
# time = 'today'
# time = 'lastweek'
# time = 'month'
time = 'none'

print("Fetch Twitter data matching " + response)

twitterData = get_twitter_data.TwitterData('2019-02-20')
tweets = twitterData.getTwitterData(response, time)
print("tweets: ")

print("Twitter data fetched \n")

# print ("Fetch Yahoo finance data for "+response+" given company keyword.... ")
# keyword2 = response
# yahooData = get_yahoo_data.YahooData('2019-02-11', "2017-02-15")
# historical_data = yahooData.getYahooData(keyword2)
# yahoo_open_price = {}
# yahoo_close_price = {}
# yahoo_high_price = {}
# yahoo_low_price = {}
# for i in range(len(historical_data)):
#     date = historical_data[i]['Date'].replace(",","")
Exemplo n.º 10
0
print "-------------------------------------------------"
print "-------------------------------------------------"

response = raw_input("Please enter Keyword: ")

while not response:
    response = raw_input("Please enter Keyword: ")

# Get Tweets
keyword = '$' + response
# time = 'today'
time = 'lastweek'

print "Fetch twitter data for " + response + " company keyword...."

twitterData = get_twitter_data.TwitterData('2017-08-26')
tweets = twitterData.getTwitterData(keyword, time)

print "Twitter data fetched \n"

#Get input from yahoo
print "Fetch yahoo finance data for " + response + " given company keyword.... "
keyword2 = '^IXIC'
nasdaq = pdr.get_data_yahoo(keyword2, start, end)
nasdaq.columns.values[-2] = 'AdjClose'
nasdaq.columns = nasdaq.columns + '_Nasdaq'
nasdaq['Return_Nasdaq'] = nasdaq['AdjClose_Nasdaq'].pct_change()
nasdaq.columns

print nasdaq