tweetlib6_app / app.py
Sakil's picture
Update app.py
f4b77bb
import re
import tweepy
import pandas as pd
import gradio as gr
import itertools
import collections
from collections import Counter
import numpy as np
from transformers import pipeline
classifier = pipeline('sentiment-analysis')
summarizer= pipeline("summarization", max_length=10)
#hashtag_phrase ="#datascience"
#recent_tweet_count_you_want =100
def search_hashtag1(hashtag_phrase,recent_tweet_count_you_want):
#hashtag_phrase=input("Enter hashtahg")
consumer_key="30GAxNeTfZuPL5SfNhFBodmRF"
consumer_secret="C6O64nP0XjtwaAnXYL9zCcDZKEIP2iL1yVdlsNJtwLiZ5AEEBs"
access_token="1246523558563471360-WrbCqO8phqjIzx393mrfOSKvDFPmey"
access_token_secret="u7B6yX6ZyTa5ph7xkCFnbzyuD9jbuHHJNL0Y4S7mdZb1J"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
fname = '_'.join(re.findall(r"#(\w+)", hashtag_phrase))
data_frame=pd.DataFrame(columns={"timestamp"})
timestamp=[]
tweet_text=[]
user_name=[]
user_id=[]
for tweet in tweepy.Cursor(api.search_tweets, q=hashtag_phrase+' -filter:retweets',lang="en", tweet_mode='extended').items(recent_tweet_count_you_want):
timestamp1=tweet.created_at
timestamp.append(timestamp1)
#tweet_text1=tweet.full_text.replace('\n',' ').encode('utf-8')
tweet_text1=tweet.full_text
tweet_text.append(tweet_text1)
user_name1=tweet.user.screen_name.encode('utf-8')
user_name.append(user_name1)
user_id1=tweet.id
user_id.append(user_id1)
data2=pd.DataFrame(timestamp,columns={"timestamp"})
data1=pd.DataFrame(tweet_text,columns={"tweet_text"})
data3=pd.DataFrame(user_name,columns={"user_name"})
data4=pd.concat([data1,data2],axis=1)
data5=pd.concat([data4,data3],axis=1)
data7=pd.DataFrame(user_id,columns={"user_id"})
data6=pd.concat([data5,data7],axis=1)
tweet_list=data6.tweet_text.to_list()
p = [i for i in classifier(tweet_list)]
q=[p[i]['label'] for i in range(len(p))]
data10=pd.DataFrame(q,columns={"sentiment"})
data_tweet_final=pd.concat([data6,data10],axis=1)
p_summarize_label = [i for i in summarizer(tweet_list)]
q_summarize=[p_summarize_label[i]['summary_text'] for i in range(len(p_summarize_label))]
data_summarize=pd.DataFrame(q_summarize,columns={"summarized_tweets"})
data_tweet_summarize_final=pd.concat([data_tweet_final,data_summarize],axis=1)
data_tweet_summarize_final.to_csv("tweet_data2.csv")
#data6.to_csv("tweet_data1.csv")
#data6=data5.head(10)
return data_tweet_summarize_final
iface = gr.Interface(
search_hashtag1,inputs=["text","number"],
outputs="dataframe",
examples=[["#datascience",5],["#valentine's day",10],["#pushpa",15],["#budget",20],["#sharktankindia",30]],
theme="seafoam",
title='Sakil Tweetlib6 App',
description="You can extract tweets based on Hashtag.e.g. Please enter #datascience. The app extracts tweets based on the hashtag and the number of tweet count you want.")
iface.launch(inline=False)