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() |