File size: 2,368 Bytes
813f895
 
 
 
9a5e1e3
3a20ddb
813f895
 
 
 
 
 
9a5e1e3
813f895
 
 
 
 
 
9a5e1e3
 
 
 
 
 
 
 
 
 
 
813f895
 
 
9a5e1e3
813f895
 
 
 
 
9a5e1e3
813f895
0bb68ed
 
813f895
 
 
 
9a5e1e3
813f895
06ff43b
813f895
9a5e1e3
813f895
 
0bb68ed
9a5e1e3
813f895
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
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 ="""
<p>
<center>
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.
<img src="https://raw.githubusercontent.com/All-Aideas/sea_apirest/main/logo.png" alt="logo" width="250"/>
</center>
</p>
"""

article = "<p style='text-align: center'><a href='http://allaideas.com/index.html' target='_blank'>Análisis de sentimiento y emoción: Link para más info</a> </p>"

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)