Este repositorio contiene el código necesario para entrenar y utilizar un modelo de análisis de sentimiento basado en el modelo BERT bert-base-uncased (Bidirectional Encoder Representations from Transformers), y utilizando la librería transformers.
El objetivo principal del modelo es predecir si una reseña de un producto es positiva o negativa. El modelo ha sido reentrenado con el dataset proporcionado por el Reto Enseña x Oracle España.
El código está diseñado para ejecutarse en Google Colab. Para utilizarlo, es necesario clonar el repositorio y abrir el notebook analisisDeSentimiento.ipynb
en colab.
El notebook consta de dos partes principales: entrenamiento e inferencia. En la sección de entrenamiento, se carga el dataset y se entrena el modelo. En la sección de evaluación, se cargan los datos de prueba y se evalúa el modelo en ellos.
Tras diferentes pruebas, hemos concluido que la red se sobreentrena de forma bastante rápida. Los mejores resultados los hemos conseguido con tan solo 3 epochs. La partición de los datos ha sido 80% para entrenamiento y 20% para validación. El resto de parámetros utilizados se pueden ver en el código.
Con todo esto, la media de resultados obtenidos ha sido de 0.9 de F1 score, siendo la mejor puntuación de 0.9099670282263035, cuyos valores se encuentran en el archivo predictions.json
, y el modelo en la carpeta model
.
El repositorio también incluye el mejor modelo obtenido hasta el momento. Este modelo se puede utilizar directamente para hacer predicciones sin necesidad de entrenarlo de nuevo. Para cargar el modelo, es necesario descargarlo y cargarlo utilizando el código proporcionado en el notebook.
Esta solcuión ha sido desarollada por los alumnos de la UAH: