TareaDiffusersTransformes / app2_tran_empresa.py
Larxmind's picture
Cambiados nombres a app_
5978695
import gradio as gr
from transformers import pipeline
#Configuración del modelo
modelo_sentimiento = "pysentimiento/robertuito-sentiment-analysis"
print("Cargando modelo de sentimientos... (Esto es rápido)")
try:
clasificador = pipeline("text-classification", model=modelo_sentimiento)
print("✅ Modelo cargado y listo.")
except Exception as e:
print(f"❌ Error al cargar: {e}")
clasificador = None
def analizar_texto(texto):
if clasificador is None:
return "Error: El modelo no está cargado."
if not texto:
return "Escribe algo primero."
try:
resultados = clasificador(texto)
# Formateamos bonito el resultado
mejor_resultado = resultados[0]
etiqueta = mejor_resultado['label'] # POS, NEG, NEU
confianza = round(mejor_resultado['score'] * 100, 2)
# Traducción de etiquetas para que se entienda mejor
traduccion = {
'POS': '😃 Positivo',
'NEG': '😡 Negativo',
'NEU': '😐 Neutro'
}
resultado_texto = traduccion.get(etiqueta, etiqueta)
return f"{resultado_texto} (Confianza: {confianza}%)"
except Exception as e:
return f"Error al analizar: {str(e)}"
# --- INTERFAZ GRÁFICA ---
with gr.Blocks(theme=gr.themes.Base()) as demo:
gr.Markdown("# 🌡️ Termómetro de Opinión")
gr.Markdown("Escribe una frase, reseña o tweet y la IA detectará el tono emocional.")
with gr.Row():
input_text = gr.Textbox(
label="Tu texto",
placeholder="Ej: ¡Este producto es una maravilla, me encanta!",
lines=3
)
output_text = gr.Label(label="Sentimiento Detectado")
btn = gr.Button("Analizar Sentimiento", variant="primary")
btn.click(fn=analizar_texto, inputs=input_text, outputs=output_text)
gr.Examples(
examples=[
["El servicio fue pésimo y la comida estaba fría."],
["Es una película entretenida, aunque el final es un poco flojo."],
["¡Estoy superfeliz con mi nueva compra!"]
],
inputs=input_text
)
if __name__ == "__main__":
demo.launch()