top of page

Mis proyectos en Python e IA

Desarrollo de una aplicación de Inteligencia Artificial para medir la Inteligencia Emocional a través de textos en formato abierto con base al indicador Myers-Briggs (Proyecto final de Máster en IA)

  • Se desarrolló una aplicación en Python con Inteligencia Artificial para medir la Inteligencia Emocional y poder evaluar las Soft Skills en postulantes a trabajos, estudiantes y personas en general, por lo que resulta muy útil para Recruiters y Recursos Humanos. Este proyecto se realizó para la empresa Global Leadership. La aplicación muestra 4 preguntas al encuestado que debe responder en formato abierto. Cada pregunta evalúa un diferente eje o dicotomía: Introversión vs Extroversión, Sensación vs Intuición,  Pensamiento vs Sentimiento y Juicio vs Percepción. Para poder medir cada eje se entrenaron 4 modelos IA (redes neuronales y modelos Machine Learning) con más de 200.000 posts de usuarios en redes sociales, consiguiendo un F1-Score entre 0.66 a 0.92 en el mejor modelo. El proyecto tuvo un año de duración.

  • Se utilizaron diferentes paquetes y frameworks de Python:

    • Django: la aplicación se colocó en un entorno web, por lo que fue necesario Django para gestionar el backend. Si quieres conocer más acerca de esto da clic aquí.

    • Tensorflow y Keras: útil para la creación y entrenamiento de Redes Neuronales utilziadas en el proyecto.

    • Scikit Learn y Pycaret: útil para la creación y entrenamiento de modelos Machine Learning como LGBM, regresión logística, SVM, Random Forest, etc.

    • Pandas: permitió la carga y procesamiento de datasets utilizados en el proyecto.

    • API de Google Translator: los más de 200.000 post de redes sociales están en inglés, por lo que, para mantener la misma naturalidad en los datos, los nuevos datos se traducen de español a inglés consiguiendo un muy buen rendimiento.

    • API de OpenAI para Embeddings: para maximizar la precisión se trabajo con el mejor modelo de Embeddings disponible que es el text-embedding-ada.  Este proceso permite transformar los textos ingresados por el usuario en vectores numéricos que capturan el significado y contexto de la información, lo que puede ser interpretado por un modelo Machine Learning o Red Neuronal.

    • API de OpenAI para Voz a Texto: el usuario también puede grabar su respuesta con el micrófono en lugar de utilizar texto, entonces se utiliza el modelo Whisper de Open AI, para pasar el voz a texto e ingresar al algoritmo.

    • PDFKIT: Se utiliza para generar un pdf con el informe de las respuestas del usuario y el resultado obtenido con el modelo.

  • En el siguiente PDF, se encuentra el diagrama de flujo de la aplicación IA con los modelos desplegados:

    En el siguiente PDF, se encuentra el diagrama de flujo que incluye la preparación de los datos y el entrenamiento de los modelos IA para la aplicación:

  • Se consiguieron las siguientes métricas en cada modelo:

Proyectos pequeños

Se diseñó un modelo IA para detectar la interacción entre diferentes tipos de medicamentos utilizando sus descripciones.

Se realizó un diseño experimental con los siguientes factores para la red neuronal: dimensiones de la capa Embbeding, número de capas convolucionales y el uso de lemas, obteniéndose los mejores parámetros para dichos factores que consiguieron maximizar el F1-Score.

Con los mejores parámetros obtenidos del diseño experimental se entrenó otra red utiizando una capa adicional BiLSTM. Con ello se mejoró considerablemente el F1-Score llegando a un valor de 56.2%.

Se cargo el modelo preentrenado de Roberta y se añadió a la red, misma que se entrenó parcialmente debido al tiempo necesario. Sin embargo, en las primeras épocas el comportamiento fue similar a la red entrenada con LSTM. Seria interesante unir esta última junto con Roberta y añadir más entradas para mejorar aún más el F1-Score.

bottom of page