File size: 3,235 Bytes
9f65e0d 0aaefc8 9f65e0d 6ed966a 9f65e0d cace45a 9f65e0d 72640a4 cace45a 9f65e0d cace45a 9f65e0d defb642 72640a4 aa02adf cace45a 72640a4 defb642 67a38f8 defb642 9f65e0d defb642 9f65e0d defb642 780e5cb defb642 7a34d4d 9f65e0d fda4b3f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
import streamlit as st
import streamlit.components.v1 as com
#import libraries
from transformers import AutoModelForSequenceClassification,AutoTokenizer, AutoConfig
import numpy as np
#convert logits to probabilities
from scipy.special import softmax
from transformers import pipeline
#Set the page configs
st.set_page_config(page_title='Sentiments Analysis',page_icon='π',layout='centered')
#welcome Animation
com.iframe("https://embed.lottiefiles.com/animation/149093")
st.markdown("<h1 style='text-align: center'> Covid Vaccine Tweet Sentiments </h1>",unsafe_allow_html=True)
st.markdown("<h2 style='text-align: center'> These models were trained to detect how a user feel about the covid vaccines based on their tweets(text) </h2>",unsafe_allow_html=True)
#Create a form to take user inputs
with st.form(key='tweet',clear_on_submit=False):
#input text
text=st.text_area('Copy and paste a tweet or type one',placeholder='I find it quite amusing how people ignore the effects of not taking the vaccine')
#Set examples
alt_text=st.selectbox("'Can't Type? Select an Example below",('I hate the vaccines','Vaccines made from dead human tissues','Take the vaccines or regret the consequences','Covid is a Hoax','Making the vaccines is a huge step forward for humanity. Just take them'))
#Submit
submit=st.form_submit_button('submit')
if submit:
#Check text
if text=="":
st.write(f'input text is set to {alt_text}')
text=alt_text
else:
st.success('Text received',icon='β
')
#Select a model
exp=st.expander(label='Choose a model and Click Continue or go ahead and Click continue to use default')
models={'Roberta': 'Junr-syl/sentiments_analysis_Roberta',
'Bert': 'Junr-syl/sentiments_analysis_upgrade',
'Distilbert':'Junr-syl/sentiments_analysis_DISTILBERT'}
with exp:
model=st.selectbox('Which model would you want to Use?',('Distilbert','Bert','Roberta'))
selected_model=models[model]
#Click continue if no model is selected
Cont=st.button('Continue','Continue processing input')
#create columns to show outputs
col1,col2,col3=st.columns(3)
col1.write('<h2 style="font-size: 24px;"> Sentiment Emoji </h2>',unsafe_allow_html=True)
col2.write('<h2 style="font-size: 24px;"> How this user feels about the vaccine </h2>',unsafe_allow_html=True)
col3.write('<h2 style="font-size: 24px;"> Confidence of this prediction </h2>',unsafe_allow_html=True)
if Cont:
#import the model
pipe=pipeline(model=selected_model)
#pass text to model
output=pipe(text)
output_dict=output[0]
lable=output_dict['label']
score=output_dict['score']
#output
if lable=='NEGATIVE':
with col1:
com.iframe("https://embed.lottiefiles.com/animation/125694")
col2.write('NEGATIVE')
col3.write(f'{score*100:.2f}%')
elif lable=='POSITIVE':
with col1:
com.iframe("https://embed.lottiefiles.com/animation/148485")
col2.write('POSITIVE')
col3.write(f'{score*100:.2f}%')
else:
with col1:
com.iframe("https://embed.lottiefiles.com/animation/136052")
col2.write('NEUTRAL')
col3.write(f'{score*100:.2f}%')
|