Ariel Hsieh
update app.py
6716393 unverified
import streamlit as st #Web App
from transformers import pipeline
from pysentimiento import create_analyzer
#title
st.title("Sentiment Analysis - Classify Sentiment of text")
model = st.selectbox("Which pretrained model would you like to use?",("roberta-large-mnli","twitter-XLM-roBERTa-base","bertweet-sentiment-analysis"))
data = []
text = st.text_input("Enter text here:","Artificial Intelligence is useful")
data.append(text)
if model == "roberta-large-mnli":
#1
if st.button("Run Sentiment Analysis of Text"):
model_path = "roberta-large-mnli"
sentiment_pipeline = pipeline(model=model_path)
result = sentiment_pipeline(data)
label = result[0]["label"]
score = result[0]["score"]
st.write("The classification of the given text is " + label + " with a score of " + str(score))
elif model == "twitter-XLM-roBERTa-base":
#2
if st.button("Run Sentiment Analysis of Text"):
model_path = "cardiffnlp/twitter-xlm-roberta-base-sentiment"
sentiment_task = pipeline("sentiment-analysis", model=model_path, tokenizer=model_path)
result = sentiment_task(text)
label = result[0]["label"].capitalize()
score = result[0]["score"]
st.write("The classification of the given text is " + label + " with a score of " + str(score))
elif model == "bertweet-sentiment-analysis":
#3
if st.button("Run Sentiment Analysis of Text"):
analyzer = create_analyzer(task="sentiment", lang="en")
result = analyzer.predict(text)
if result.output == "POS":
label = "POSITIVE"
elif result.output == "NEU":
label = "NEUTRAL"
else:
label = "NEGATIVE"
neg = result.probas["NEG"]
pos = result.probas["POS"]
neu = result.probas["NEU"]
st.write("The classification of the given text is " + label + " with the scores broken down as: Positive - " + str(pos) + ", Neutral - " + str(neu) + ", Negative - " + str(neg))