MattekJenduls's picture
Update app.py
fd31e5f
# from transformers import AutoTokenizer, AutoModelForSequenceClassification
# download = False
# save_model_locally= False
# if download:
# tokenizer = AutoTokenizer.from_pretrained("MilaNLProc/feel-it-italian-sentiment", cache_dir="data/")
# model_sent = AutoModelForSequenceClassification.from_pretrained("MilaNLProc/feel-it-italian-sentiment", cache_dir="data/")
# model_sent.eval()
# tokenizer_emo = AutoTokenizer.from_pretrained("MilaNLProc/feel-it-italian-emotion", cache_dir="data/")
# model_emo = AutoModelForSequenceClassification.from_pretrained("MilaNLProc/feel-it-italian-emotion", cache_dir="data/")
# model_emo.eval()
# if save_model_locally:
# model_sent.save_pretrained('./local_models/sentiment_ITA')
# tokenizer.save_pretrained('./local_models/sentiment_ITA')
# model_emo.save_pretrained('./local_models/emotion_ITA')
# tokenizer_emo.save_pretrained('./local_models/emotion_ITA')
# else:
# tokenizer = AutoTokenizer.from_pretrained("./local_models/sentiment_ITA/")
# model_sent = AutoModelForSequenceClassification.from_pretrained("./local_models/sentiment_ITA/", num_labels=2)
# model_sent.eval()
# tokenizer_emo = AutoTokenizer.from_pretrained("./local_models/emotion_ITA/")
# model_emo = AutoModelForSequenceClassification.from_pretrained("./local_models/emotion_ITA/", num_labels=4)
# model_emo.eval()
# #%%generator_sent
from transformers import pipeline
generator_sent = pipeline(task="text-classification", model='./local_models/sentiment_ITA/', top_k=None)
generator_emo = pipeline(task="text-classification", model='./local_models/emotion_ITA/', top_k=None)
def sentiment_emoji(input_abs):
if(input_abs ==""):
return "πŸ€·β€β™‚οΈ"
res = generator_sent(input_abs)[0]
print("res: ", res)
res = {res[x]["label"]: res[x]["score"] for x in range(len(res))}
res["πŸ™‚ positive"] = res.pop("positive")
res["πŸ™ negative"] = res.pop("negative")
return res
def emotion_emoji(input_abs):
if(input_abs ==""):
return "πŸ€·β€β™‚οΈ"
res = generator_emo(input_abs)[0]
res = {res[x]["label"]: res[x]["score"] for x in range(len(res))}
res["πŸ˜ƒ joy"] = res.pop("joy")
res["😑 anger"] = res.pop("anger")
res["😨 fear"] = res.pop("fear")
res["😟 sadness"] = res.pop("sadness")
return res
#%%
import gradio as gr
demo = gr.Blocks()
with demo:
gr.Markdown("# Analisi sentimento/emozioni del testo italiano")
with gr.Row():
with gr.Column():
text_input = gr.Textbox(placeholder="Scrivi qui")
button_1 = gr.Button("Invia")
with gr.Column():
label_sem = gr.Label()
label_emo = gr.Label()
# gr.Interface(fn=emotion_emoji, inputs=text_input, outputs="label")
button_1.click(sentiment_emoji, inputs=text_input, outputs=label_sem, api_name="sentiment")
button_1.click(emotion_emoji, inputs=text_input, outputs=label_emo, api_name="emotion")
demo.launch()
print("Running is terminated")