Spaces:
Runtime error
Runtime error
File size: 3,125 Bytes
8cdbe40 f9cf78c 51c5019 c45446a 8cdbe40 747d201 123b344 4b44a9b 123b344 8cdbe40 f541c0d 747d201 41ee349 e38acc3 41ee349 c45446a b56d254 b7ec123 b56d254 b7ec123 f9cf78c b7ec123 f9cf78c f42d3ef f9cf78c 2d41505 8cdbe40 123b344 b5d21b7 f541c0d 41ee349 b56d254 b7ec123 f42d3ef 31c8161 f42d3ef b7ec123 f42d3ef 8cdbe40 745ea4a 8cdbe40 b7ec123 8cdbe40 728a13e 8cdbe40 51c5019 8cdbe40 |
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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
import numpy as np
import streamlit as st
from transformers import pipeline
from transformers import DistilBertTokenizerFast, DistilBertForSequenceClassification
from PIL import Image
import torch
def bertweet(data):
specific_model = pipeline(model="finiteautomata/bertweet-base-sentiment-analysis")
result = specific_model(data)
label = result[0]['label']
score = result[0]['score']
return label, score
def roberta(data):
specific_model = pipeline(model="cardiffnlp/twitter-roberta-base-sentiment")
result = specific_model(data)
label = result[0]['label']
score = result[0]['score']
if(label == 'LABEL_0'):
label = 'Negative'
elif(label == 'LABEL_1'):
label = 'Neutral'
else:
label = 'Positive'
return label, score
def siebert(data):
specific_model = pipeline(model='siebert/sentiment-roberta-large-english')
result = specific_model(data)
label = result[0]['label']
score = result[0]['score']
return label, score
def finetuned(data):
model_name = "dahongj/finetuned_toxictweets"
tokenizer = DistilBertTokenizerFast.from_pretrained(model_name)
model = DistilBertForSequenceClassification.from_pretrained(model_name)
tokenized_text = tokenizer(data, return_tensors="pt")
res = model(**tokenized_text)
mes = torch.sigmoid(res.logits)
Dict = {0: "toxic", 1: "severe_toxic", 2: "obscene", 3: "threat", 4: "insult", 5: "identity_hate"}
maxres, maxscore, sec, secscore = Dict[0], mes[0][0].item(), 0, 0
for i in range(1,6):
if mes[0][i].item() > secscore:
sec = i
secscore = mes[0][i].item()
return maxres, maxscore, Dict[sec], secscore
def getSent(data, model):
if(model == 'Bertweet'):
label,score = bertweet(data)
col1, col2 = st.columns(2)
col1.metric("Feeling",label,None)
col2.metric("Score",score,None)
elif(model == 'Roberta'):
label,score = roberta(data)
col1, col2 = st.columns(2)
col1.metric("Feeling",label,None)
col2.metric("Score",score,None)
elif(model == 'Siebert'):
label,score = siebert(data)
col1, col2 = st.columns(2)
col1.metric("Feeling",label,None)
col2.metric("Score",score,None)
elif(model == 'Finetuned'):
label, score, sec, secsc = finetuned(data)
col1, col2 = st.columns(2)
col3, col4 = st.columns(2)
col1.metric("Highest",label,None)
col2.metric("Score",score,None)
col3.metric("Second Highest", sec, None)
col4.metric("Score", secsc, None)
def rendPage():
st.title("Sentiment Analysis")
userText = st.text_area('User Input', "Hope you are having a great day!")
st.text("")
type = st.selectbox(
'Choose your model',
('Bertweet','Roberta','Siebert','Finetuned'))
st.text("")
if st.button('Calculate'):
if(userText!="" and type != None):
st.text("")
getSent(userText,type)
image = Image.open("milestone3.jpg")
st.image(image, caption="10 Example Texts")
rendPage()
|