Coder Social home page Coder Social logo

finalproyectpln's Introduction

Modelo para detectar depresión en usuarios en base a comentarios en redes sociales

Introducción

Este repositorio incluye bases de datos etiquetadas con positivo y negativo de más de 102 mil datos. Los datos fueron obtenidos utilizando bases de datos ya preexistentes que se encuentran disponibles en internet (para más información checar Páginas Consultadas). También se utilizó un webscrapping, se realizó para complementar la información y mantener un balance en los datos sin tener la necesidad de recurrir a recursos como la utilización de datos sintéticos. No se logró utilizar el 100% de los datos recolectados por problemas con Google Colab y espacios de memoria, por lo que tuvimos que reducir la muestra a 20 mil datos. Se llegó a esta cifra tras varios experimentos con diferentes cantidades. Posteriormente, se comprobó que con 20 mil datos se obtenía el mejor desempeño sin tener tiempos muy largos de espera al correr el código.

Los modelos usados dentro del programa nos ayudan a detectar la depresión de los comentarios obtenidos de diferentes plataformas como Twitter y Reddit.

Requirement

Se debe de correr el código en Google Colab para asegurar su funcionamiento adecuado.

Librerias utilizadas:

  • pandas
  • google
  • nltk
  • re
  • sklearn
  • keras
  • numpy
  • matplotlib
  • tensorflow

Librerias instaladas en Google Colab:

  • transformers
  • emoji

Para más información consultar el archivo requirements.txt

Uso del código

El archivo final del modelo: Modelo.ipynb

El archivo del webscrapping: Happy_Reddit.ipynb

Al realizar el clone al repositorio se obtienen todos los archivos, en caso de no hacerlo, verificar que se tengan todos los archivos de los datos para su correcto funcionamiento.

Considerar los archivos:

  • data_1.txt
  • sample_data_1.xlsx
  • sample_data_2.xlsx

Video de ejemplo: https://youtu.be/dIltb2rWeD4

Se requiere obtener un archivo kaggle.json para algunas de las bases de datos

Para más información consultar la documentación oficial https://www.kaggle.com/docs/api

Clonado del repositorio

git clone https://github.com/genaromateu/FinalProyectPLN.git

Descripción y entrenamiento de los modelos

Modelo 1 BERT

BERT(Bidirectional Encoder Representation from Transformers) es un transformador pre-entrenado propuesto en el siguiente paper https://arxiv.org/abs/1810.04805. En este caso se utilizó la versión de BERT para la clasificación de secuencias para TensorFlow. Se utilizó la función de 'Sparce Categorical Crossentropy' para calcular la pérdida, Adam como optimizador y con un 'learning rate' variable que empieza en 5e-5 y baja linealmente hasta 1e-7. Para el entrenamiento se utilizaron 'batches' de 100 por 3 épocas.

Modelo 2 DistilBERT

DistilBERT es un transformador derivado de BERT que es más ligero y rápido además de que conserva mucha de la precisión de BERT. Se utilizó la versión para la clasificación de secuencias para TensorFlow, con los mismos hyperparámetros que el modelo anterior.

Resultados

Los resultados varían cada vez que se entrena el modelo

BERT

              precision    recall  f1-score   support

      Normal       0.95      0.95      0.95      1225
   Depressed       0.95      0.95      0.95      1275

    accuracy                           0.95      2500
   macro avg       0.95      0.95      0.95      2500
weighted avg       0.95      0.95      0.95      2500

                  Pred. Normal	  Pred. Depressed
True Normal       1164	          61
True Depressed	  65              1210

image

DistilBERT

              precision    recall  f1-score   support

      Normal       0.97      0.97      0.97      1225
   Depressed       0.97      0.97      0.97      1275

    accuracy                           0.97      2500
   macro avg       0.97      0.97      0.97      2500
weighted avg       0.97      0.97      0.97      2500


                  Pred. Normal	  Pred. Depressed
True Normal       1192	          33
True Depressed	  37              1238

image

Páginas Consultadas

http://amsantac.co/blog/es/2016/09/20/balanced-image-classification-r-es.html -- se utilizó la web para ver la importancia de trabajar con datos balanceados

https://github.com/JDAI-CV/CoTNet -- se utilizó para basarnos en el estilo del github

https://docs.github.com/es/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax -- se utilizó para conocer los formatos de sintaxis de la plataforma

Bases de datos:

finalproyectpln's People

Contributors

genaromateu avatar jaimemontemayor avatar karenzc avatar naomimh avatar rogeliomm avatar

Watchers

 avatar

Forkers

naomimh karenzc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.