Spaces:
Sleeping
Sleeping
| 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() |