Spaces:
Running
Running
File size: 3,621 Bytes
85e28c3 8d6659b 85e28c3 8d6659b 85e28c3 8d6659b 85e28c3 |
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 |
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() |