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()