Spaces:
Runtime error
Runtime error
import streamlit as st | |
import tweepy as tw | |
import pandas as pd | |
from transformers import pipeline | |
import os | |
consumer_key = 'OCgWzDW6PaBvBeVimmGBqdAg1' | |
consumer_secret = 'tBKnmyg5Jfsewkpmw74gxHZbbZkGIH6Ee4rsM0lD1vFL7SrEIM' | |
access_token = '1449663645412065281-LNjZoEO9lxdtxPcmLtM35BRdIKYHpk' | |
access_token_secret = 'FL3SGsUWSzPVFnG7bNMnyh4vYK8W1SlABBNtdF7Xcbh7a' | |
auth = tw.OAuthHandler(consumer_key, consumer_secret) | |
auth.set_access_token(access_token, access_token_secret) | |
api = tw.API(auth, wait_on_rate_limit=True) | |
classifier = pipeline('sentiment-analysis') | |
# Define file name and headers | |
FILE_NAME = 'query_history.csv' | |
HEADERS = ['Search Query', 'Number of Tweets', 'Results', 'Date'] | |
# Create file if it does not exist | |
if not os.path.isfile(FILE_NAME): | |
df = pd.DataFrame(columns=HEADERS) | |
df.to_csv(FILE_NAME, index=False) | |
# Make program take up full width of screen | |
st.set_page_config(page_title='π Twitter Sentiment Analysis', layout='wide') | |
# Define function to display history | |
def display_history(): | |
df = pd.read_csv(FILE_NAME) | |
st.dataframe(df.style.highlight_max(axis=0)) | |
# Define main function | |
def run(): | |
with st.form(key='Enter name'): | |
search_words = st.text_input('Enter a word or phrase you want to know about') | |
number_of_tweets = st.number_input('How many tweets do you want to see? (maximum 50)', 0,50,10) | |
submit_button = st.form_submit_button(label='Submit') | |
if submit_button: | |
tweets =tw.Cursor(api.search_tweets,q=search_words,lang="en").items(number_of_tweets) | |
tweet_list = [i.text for i in tweets] | |
p = [i for i in classifier(tweet_list)] | |
q=[p[i]['label'] for i in range(len(p))] | |
df = pd.DataFrame(list(zip([search_words], [number_of_tweets], [tweet_list], [pd.Timestamp.now()])),columns = HEADERS) | |
st.write(pd.DataFrame(list(zip(tweet_list, q)),columns =['Latest '+str(number_of_tweets)+' Tweets'+' on '+search_words, 'sentiment'])) | |
with open(FILE_NAME, mode='a', newline='') as file: | |
df.to_csv(file, header=False, index=False) | |
if st.button('Clear History'): | |
os.remove(FILE_NAME) | |
st.write('History has been cleared.') | |
if st.button('Display History'): | |
display_history() | |
if __name__=='__main__': | |
run() | |