IABD12's picture
Update app.py
d20df05 verified
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()