Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import AutoModelForSequenceClassification, AutoTokenizer | |
import numpy as np | |
model_name = "Ngit/MiniLMv2-L6-H384-goemotions-v2" | |
model = AutoModelForSequenceClassification.from_pretrained(model_name) | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
def evaluate(text): | |
text = text.strip() | |
proba = [0]*28 | |
if text: | |
input_ids = tokenizer(text, return_tensors="pt").input_ids | |
output = model(input_ids) | |
proba = 1 / (1 + np.exp(-output.logits.detach().numpy()[0])) | |
proba = [int(v*1000)/10 for v in proba] | |
return proba | |
with gr.Blocks() as demo: | |
text = gr.Textbox(label="Text to evaluate", lines=6) | |
with gr.Row(): | |
with gr.Group(): | |
t_adm = gr.Slider(label="admiration", value=0, maximum=100) | |
t_amu = gr.Slider(label="amusement", value=0, maximum=100) | |
t_ang = gr.Slider(label="anger", value=0, maximum=100) | |
t_ann = gr.Slider(label="annoyance", value=0, maximum=100) | |
t_app = gr.Slider(label="approval", value=0, maximum=100) | |
t_car = gr.Slider(label="caring", value=0, maximum=100) | |
t_con = gr.Slider(label="confusion", value=0, maximum=100) | |
with gr.Group(): | |
t_cur = gr.Slider(label="curiosity", value=0, maximum=100) | |
t_des = gr.Slider(label="desire", value=0, maximum=100) | |
t_dis = gr.Slider(label="disappointment", value=0, maximum=100) | |
t_dip = gr.Slider(label="disapproval", value=0, maximum=100) | |
t_dit = gr.Slider(label="disgust", value=0, maximum=100) | |
t_emb = gr.Slider(label="embarrassment", value=0, maximum=100) | |
t_exc = gr.Slider(label="excitement", value=0, maximum=100) | |
with gr.Group(): | |
t_fea = gr.Slider(label="fear", value=0, maximum=100) | |
t_gra = gr.Slider(label="gratitude", value=0, maximum=100) | |
t_gri = gr.Slider(label="grief", value=0, maximum=100) | |
t_joy = gr.Slider(label="joy", value=0, maximum=100) | |
t_lov = gr.Slider(label="love", value=0, maximum=100) | |
t_ner = gr.Slider(label="nervousness", value=0, maximum=100) | |
t_opt = gr.Slider(label="optimism", value=0, maximum=100) | |
with gr.Group(): | |
t_pri = gr.Slider(label="pride", value=0, maximum=100) | |
t_rea = gr.Slider(label="realization", value=0, maximum=100) | |
t_rel = gr.Slider(label="relief", value=0, maximum=100) | |
t_rem = gr.Slider(label="remorse", value=0, maximum=100) | |
t_sad = gr.Slider(label="sadness", value=0, maximum=100) | |
t_sur = gr.Slider(label="surprise", value=0, maximum=100) | |
t_neu = gr.Slider(label="neutral", value=0, maximum=100) | |
btn = gr.Button(value="Evaluate Emotion") | |
btn.click( | |
evaluate, | |
inputs=[text], | |
outputs=[ | |
t_adm, | |
t_amu, | |
t_ang, | |
t_ann, | |
t_app, | |
t_car, | |
t_con, | |
t_cur, | |
t_des, | |
t_dis, | |
t_dip, | |
t_dit, | |
t_emb, | |
t_exc, | |
t_fea, | |
t_gra, | |
t_gri, | |
t_joy, | |
t_lov, | |
t_ner, | |
t_opt, | |
t_pri, | |
t_rea, | |
t_rel, | |
t_rem, | |
t_sad, | |
t_sur, | |
t_neu, | |
], | |
) | |
if __name__ == "__main__": | |
demo.queue().launch() |