--- title: Examen Sentimientos Twitter 2025 emoji: 🚀 colorFrom: blue colorTo: indigo sdk: gradio sdk_version: 5.23.3 app_file: app.py pinned: false license: cc-by-nc-4.0 short_description: App que detecta los sentimientos de un mensaje. --- # Análisis de Sentimientos con `cardiffnlp/twitter-roberta-base-sentiment` ## Descripción del Proyecto Este proyecto implementa un modelo de análisis de sentimientos utilizando `cardiffnlp/twitter-roberta-base-sentiment`, basado en la arquitectura RoBERTa. Su objetivo es clasificar textos en tres categorías principales: **positivo**, **neutral** y **negativo**, proporcionando además un puntaje de confianza para cada predicción. La aplicación permite a los usuarios ingresar texto a través de una interfaz simple creada con `Gradio` y obtener una evaluación automática del sentimiento expresado en el mensaje. --- ## Justificación del Modelo El modelo `cardiffnlp/twitter-roberta-base-sentiment` ha sido seleccionado debido a su alta precisión en la clasificación de textos cortos, como publicaciones en redes sociales y comentarios de usuarios. Algunas de sus principales ventajas son: - ✅ **Entrenamiento en datos reales**: Ha sido entrenado con un gran conjunto de datos de Twitter, lo que le permite reconocer expresiones coloquiales y jerga común. - ✅ **Alto rendimiento**: Su arquitectura RoBERTa permite una comprensión avanzada del contexto y el significado del texto. - ✅ **Facilidad de implementación**: Disponible en Hugging Face, se integra fácilmente en cualquier aplicación sin necesidad de entrenamiento adicional. - ✅ **Puntaje de confianza**: Además de la etiqueta del sentimiento, proporciona una puntuación que indica el nivel de certeza de la predicción. Este modelo es ideal para aplicaciones de **análisis de redes sociales, estudios de mercado y monitoreo de la opinión pública**. --- ## Proceso de Despliegue ### 1. Implementación del Modelo con el Pipeline El primer paso es cargar el modelo preentrenado de Hugging Face usando la librería `Transformers`. El modelo utilizado en este caso es `cardiffnlp/twitter-roberta-base-sentiment`, el cual está diseñado específicamente para análisis de sentimientos en textos cortos, como los tuits. ```python from transformers import pipeline # Cargar el modelo de HuggingFace para análisis de sentimientos classifier = pipeline("sentiment-analysis", model="cardiffnlp/twitter-roberta-base-sentiment") ``` ## 2. Definición de la Función para Analizar Sentimientos Una vez cargado el modelo, definimos una función llamada `analizar_sentimiento`, que toma un texto como entrada, lo procesa utilizando el modelo y devuelve la clasificación de sentimiento (positivo, neutral o negativo) junto con el puntaje de confianza del modelo. ```python # Función para analizar el sentimiento del texto def analizar_sentimiento(texto): resultado = classifier(texto) # Obtenemos el resultado del modelo label = resultado[0]["label"] # Extraemos la etiqueta de sentimiento nivel_sentimiento = resultado[0]["score"] # Extraemos el puntaje de confianza # Mapeo de las etiquetas del modelo a categorías legibles etiquetas_sentimiento = { "LABEL_0": "negativo", "LABEL_1": "neutral", "LABEL_2": "positivo" } sentimiento = etiquetas_sentimiento.get(label, label) # Asignamos el sentimiento correspondiente return f"{sentimiento} (score: {nivel_sentimiento:.2f})" # Retornamos el resultado con el puntaje ``` ## 3. Creación de la Interfaz con Gradio Finalmente, se utiliza Gradio para crear una interfaz de usuario sencilla que permite ingresar un texto y ver el resultado del análisis de sentimiento en tiempo real. La interfaz se lanza a través de la función `launch()`, que abre una página web donde se pueden hacer las pruebas. ```python import gradio as gr # Configurar la interfaz de Gradio demo = gr.Interface( fn=analizar_sentimiento, inputs=gr.Textbox(lines=5, placeholder="Escribe un texto en español aquí..."), outputs="text", title="Análisis de Sentimientos en Español", description="Introduce un texto en español y obtén el sentimiento analizado (Negativo, Neutral, Positivo) utilizando el modelo cardiffnlp/twitter-roberta-base-sentiment." ) ``` # Lanzar la interfaz demo.launch() ### Resultados Obtenidos El modelo ha demostrado un rendimiento adecuado en análisis de sentimientos de textos cortos en español. La interfaz es intuitiva y permite obtener resultados rápidos. Sin embargo, algunas predicciones en español no son tan precisas como en inglés debido a que el modelo está principalmente entrenado en datos en inglés. --- ## Instalación y Uso ### Requisitos Previos Antes de ejecutar el proyecto, asegúrate de tener instaladas las siguientes dependencias: ```bash pip install transformers gradio torch ``` ### Ejecución del Proyecto Para iniciar la aplicación de análisis de sentimientos, simplemente ejecuta: ```bash python app.py ``` ## Posibles Mejoras y Dificultades ### Mejoras Futuras - 📊 Ajuste del modelo para un mejor rendimiento en textos largos. - 📌 Ampliación del conjunto de datos de entrenamiento con más ejemplos en español. - 📉 Implementación de un dashboard con estadísticas sobre los análisis de sentimiento realizados. - ⚡ Optimización del tiempo de respuesta para textos extensos. ### Dificultades Encontradas - Algunas predicciones en español pueden ser menos precisas debido a que el modelo está entrenado principalmente en inglés. - En textos ambiguos, el modelo tiende a clasificarlos como neutros. - La falta de documentación específica para su uso en español dificultó algunos ajustes en el preprocesamiento de los datos. --- ## Licencia Este proyecto se distribuye bajo la licencia **Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)**. Esto significa que puedes compartir el contenido con la debida atribución, pero **no puedes utilizarlo con fines comerciales** ni realizar obras derivadas a partir de él. Para más detalles, consulta la licencia completa en: 🔗 [Creative Commons BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference