import gradio as gr from pysentimiento import create_analyzer sentiment_analyzer = create_analyzer(task="sentiment", lang="es") emotion_analyzer = create_analyzer(task="emotion", lang="es") def get_texto_con_porcentaje(decimal): return "{:.1%}".format(decimal) def get_sentiment(input_text): analyzer_resultado = sentiment_analyzer.predict(input_text) resultado_positivo = get_texto_con_porcentaje(analyzer_resultado.probas["POS"]) resultado_negativo = get_texto_con_porcentaje(analyzer_resultado.probas["NEG"]) resultado_neutro = get_texto_con_porcentaje(analyzer_resultado.probas["NEU"]) return resultado_positivo, resultado_negativo, resultado_neutro def get_emotions(input_text): analyzer_resultado = emotion_analyzer.predict(input_text) return analyzer_resultado.output def get_analisis(input_text): resultado_positivo, resultado_negativo, resultado_neutro = get_sentiment(input_text) resultado_emociones = get_emotions(input_text) return resultado_positivo, resultado_negativo, resultado_neutro, resultado_emociones description ="""

Demo análisis de sentimientos y emociones, el objetivo es indicar el sentimiento positivo, negativo o neutro, y la emoción identificada a partir de un texto. logo

""" article = "

Análisis de sentimiento y emoción: Link para más info

" examples = [['Estoy muy feliz'], ['No me lo esperaba. Muchas gracias'],['No ganamos, que rabia']] input_1 = gr.inputs.Textbox(label="Texto a analizar") output_1 = gr.outputs.Textbox(label="Resultado sentimiento positivo") output_2 = gr.outputs.Textbox(label="Resultado sentimiento negativo") output_3 = gr.outputs.Textbox(label="Resultado sentimiento nuetro") output_4 = gr.outputs.Textbox(label="Resultado emoción identificada") iface = gr.Interface(fn=get_analisis, inputs=input_1, outputs=[output_1, output_2, output_3, output_4], description=description, article=article, examples=examples, title="Análisis de Sentimiento y Emoción en Español") iface.launch(debug=True)