File size: 2,187 Bytes
1762ff2
 
 
4dfa37a
 
1762ff2
dbe0e4c
d20df05
174023d
 
 
f493a2e
4dfa37a
d20df05
f493a2e
dbe0e4c
4dfa37a
d20df05
 
dbe0e4c
d20df05
 
 
174023d
 
 
f493a2e
 
174023d
4dfa37a
 
 
 
 
 
 
 
d20df05
1762ff2
f493a2e
174023d
 
1762ff2
4dfa37a
dbe0e4c
4dfa37a
 
 
 
 
1762ff2
4dfa37a
174023d
 
 
 
 
 
 
 
4dfa37a
1762ff2
 
d20df05
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
from transformers import pipeline
import gradio as gr

nombre_modelo = "cardiffnlp/twitter-xlm-roberta-base-sentiment"
pipeline_sentimiento = pipeline("sentiment-analysis", model=nombre_modelo, tokenizer=nombre_modelo)

def analizar_sentimiento(texto):

    if not texto.strip():
        return "Error: Por favor introduce texto para analizar"
    
    try:
        resultado = pipeline_sentimiento(texto)
        print("Resultado del modelo:", resultado)
        
        etiqueta = resultado[0]['label']
        puntuación = resultado[0]['score']

        # Variables en ingles que no funcionan
        mapa_etiquetas = {
            'negative': '🔴 Negativo',
            'neutral': '🟡 Neutral',
            'positive': '🟢 Positivo',
            'LABEL_0': '🔴 Negativo',
            'LABEL_1': '🟡 Neutral',
            'LABEL_2': '🟢 Positivo'
        }
        
        etiqueta_espanol = mapa_etiquetas.get(etiqueta, 'Desconocido')
        
        if puntuación < 0.6:
            confianza_desc = "Confianza baja"
        elif puntuación < 0.8:
            confianza_desc = "Confianza moderada"
        else:
            confianza_desc = "Confianza alta"
        
        return f"El mensaje es: {etiqueta_espanol} ({confianza_desc}: {puntuación:.2f})"
    
    except Exception as e:
        print(f"Error interno: {str(e)}")  # Log para depuración
        return "Ocurrió un error al analizar el texto. Por favor intenta con otro contenido."

demo = gr.Interface(
    fn=analizar_sentimiento,
    inputs=gr.Textbox(
        lines=5,
        placeholder="Introduce texto en español o inglés aquí...",
        label="Texto a Analizar"
    ),
    outputs="text",
    title="Análisis de Sentimiento Multilingüe",
    description="""Analiza el sentimiento de texto en español o inglés utilizando el modelo XLM-RoBERTa.
    Resultados: 🔴 Negativo, 🟡 Neutral, 🟢 Positivo""",
    examples=[
        ["Me encanta este producto, es increíble"],
        ["No estoy satisfecho con el servicio recibido"],
        ["Es aceptable, pero podría mejorar"],
        ["I love this app! (inglés también funciona)"]
    ],
    theme="soft"
)

demo.launch()