File size: 2,081 Bytes
aa7f5a4
 
bd8d813
 
 
 
 
aa7f5a4
 
 
 
 
734dda1
bd8d813
 
 
 
 
 
 
 
 
 
6c5dac1
bd8d813
09de9ab
 
 
 
6c5dac1
 
 
bd8d813
 
 
09de9ab
 
 
6c5dac1
 
 
 
 
 
 
 
 
 
 
bd8d813
aa7f5a4
 
13c3404
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
import streamlit as st  #Web App
from transformers import pipeline
from pysentimiento import create_analyzer



model = st.selectbox("Which pretrained model would you like to use?",("DistilBERT","twitter-XLM-roBERTa-base","bertweet-sentiment-analysis"))

#title
st.title("Sentiment Analysis - Classify Sentiment of text")

data = []
text = st.text_input("Enter text here:","Artificial Intelligence is useful")
data.append(text)
if model == "DistilBERT":
    #1
    if st.button("Run Sentiment Analysis of Text"): 
        model_path = "distilbert-base-uncased-finetuned-sst-2-english"
        sentiment_pipeline = pipeline("sentiment-analysis",model=model_path, tokenizer=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"]
        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 percentages broken down as: Positive - " + str(pos) + ", Neutral - " + str(neu) + ", Negative - " + str(neg))