diff --git a/Twitter Sentiment Analysis/app.py b/Twitter Sentiment Analysis/app.py deleted file mode 100644 index d96b2c9..0000000 --- a/Twitter Sentiment Analysis/app.py +++ /dev/null @@ -1,87 +0,0 @@ -import re -import tweepy -from tweepy import OAuthHandler -from textblob import TextBlob - -class TwitterClient(object): - ''' - Generic Twitter Class for sentiment analysis. - ''' - def __init__(self): - consumer_key = 'XXXXXXXXXXXXXXXXXXXXXXXX' - consumer_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' - access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' - access_token_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXX' - - # attempt authentication - try: - self.auth = OAuthHandler(consumer_key, consumer_secret) - self.auth.set_access_token(access_token, access_token_secret) - self.api = tweepy.API(self.auth) - except: - print("Error: Authentication Failed") - - def clean_tweet(self, tweet): - ''' - return ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)", " ", tweet).split()) - - def get_tweet_sentiment(self, tweet): - ''' - Utility function to classify sentiment of passed tweet - using textblob's sentiment method - ''' - # create TextBlob object of passed tweet text - analysis = TextBlob(self.clean_tweet(tweet)) - # set sentiment - if analysis.sentiment.polarity > 0: - return 'positive' - elif analysis.sentiment.polarity == 0: - return 'neutral' - else: - return 'negative' - - def get_tweets(self, query, count = 10): - tweets = [] - - try: - fetched_tweets = self.api.search(q = query, count = count) - for tweet in fetched_tweets: - parsed_tweet = {} - parsed_tweet['text'] = tweet.text - parsed_tweet['sentiment'] = self.get_tweet_sentiment(tweet.text) - if tweet.retweet_count > 0: - if parsed_tweet not in tweets: - tweets.append(parsed_tweet) - else: - tweets.append(parsed_tweet) - return tweets - - except tweepy.TweepError as e: - print("Error : " + str(e)) - -def main(): - api = TwitterClient() - tweets = api.get_tweets(query = 'Donald Trump', count = 200) - - ptweets = [tweet for tweet in tweets if tweet['sentiment'] == 'positive'] - - print("Positive tweets percentage: {} %".format(100*len(ptweets)/len(tweets))) - - ntweets = [tweet for tweet in tweets if tweet['sentiment'] == 'negative'] - - print("Negative tweets percentage: {} %".format(100*len(ntweets)/len(tweets))) - - print("Neutral tweets percentage: {} % \ - ".format(100*(len(tweets) -(len( ntweets )+len( ptweets)))/len(tweets))) - - - print("\n\nPositive tweets:") - for tweet in ptweets[:10]: - print(tweet['text']) - - print("\n\nNegative tweets:") - for tweet in ntweets[:10]: - print(tweet['text']) - -if __name__ == "__main__": - main() \ No newline at end of file