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