CESAC Nº24

Pipeline automática y escalable de análisis de datos con Python.
Procesamiento de texto, cálculo de indicadores, visualizaciones y envío automático de reporte.

Resumen del Proyecto

Este proyecto desarrolla un pipeline automático para el análisis de datos en el área de salud mental. Se realiza el procesamiento de texto para extraer información relevante, se generan métricas clave y se crean visualizaciones dinámicas que permiten monitorear tendencias y patrones. Además, el sistema incluye la generación de un informe en PDF y el envío automático de reportes por mail para facilitar la toma de decisiones basada en datos actualizados.

Desarrollo del proyecto

Procesamiento avanzado de texto El proyecto parte del análisis de datos recolectados mediante un formulario online que debe completar el profesional que solicita la derivación a salud mental. En muchos casos, estos formularios se llenan rápidamente y bajo alta carga de trabajo, lo que genera respuestas desordenadas, con errores ortográficos o lenguaje informal. Una de las columnas clave incluía texto libre que describía el motivo del pedido, con grandes variaciones en redacción, longitud y vocabulario. Para estructurar esta variable, desarrollé un módulo que normaliza el texto y lo compara contra un diccionario de categorías predefinidas, aplicando técnicas de fuzzy matching con la librería RapidFuzz. Esta etapa permitió etiquetar automáticamente cada registro con uno o más motivos estandarizados, dando estructura a lo que originalmente era información desordenada. La imagen ilustra un fragmento central de este proceso, donde se combinan expresiones regulares, normalización de caracteres y comparación difusa para maximizar la cobertura sin perder precisión.

Generación del gráfico principales motivos de derivaciones Una vez estructuradas las categorías a partir del texto libre, se avanzó con un análisis exploratorio amplio de los datos. Se generaron diversas visualizaciones que permitieron entender mejor el volumen, las características y los contextos de las derivaciones. Entre ellas, se destacan gráficos de cantidad de pedidos por rango etario —obtenido a partir de la limpieza y binning de la variable edad—, evolución mensual y semanal de las derivaciones, y porcentaje de pacientes con tratamiento previo en salud mental. Estas visualizaciones aportan múltiples perspectivas que enriquecen el diagnóstico institucional. Dentro de este proceso, también se desarrolló el código que genera el gráfico de motivos más frecuentes, a partir del conteo y expansión de las etiquetas categorizadas en el paso anterior. En este bloque se muestra parte del código utilizado para calcular, ordenar y preparar estos indicadores, que fueron claves para transformar texto libre en información visualmente útil.

Gráfico principales motivos de derivaciones Además de las visualizaciones, el proyecto incluyó el cálculo de métricas operativas relevantes para evaluar el funcionamiento del sistema de derivaciones. Entre ellas, se calcularon el promedio de consultas semanales, la cantidad total de registros procesados, el porcentaje de formularios que no lograron ser categorizados mediante palabras clave, y la cantidad promedio de categorías detectadas por caso. Estas métricas permiten monitorear la evolución de la demanda, detectar posibles problemas en el diseño del formulario o en el llenado, y ajustar estrategias de atención. La visualización mostrada en este bloque, centrada en los motivos más frecuentes de derivación, sintetiza parte de ese trabajo y sirve como ejemplo del tipo de resultados que el análisis permite obtener. Es la instancia donde los datos procesados se transforman en evidencia clara para orientar decisiones clínicas e institucionales.

Envío automático de correo con análisis Como cierre del pipeline, se desarrolló un módulo que automatiza la generación y el envío del informe. Todos los productos del análisis —gráficos, tablas y un informe en PDF generado automáticamente— se recopilan y se envían por correo electrónico al equipo correspondiente. Se utilizaron las bibliotecas smtplib y email para componer el mensaje, detectar los archivos a adjuntar y despachar el correo desde una cuenta predefinida. Esta etapa le da al proyecto un carácter operativo y escalable: no solo procesa e interpreta datos, sino que también entrega resultados de forma autónoma, sin necesidad de intervención manual. La imagen muestra un fragmento de este flujo de automatización, que es especialmente útil en entornos institucionales con alta carga de trabajo, donde el tiempo disponible para sistematizar y compartir resultados es escaso.

Etapas del Proyecto

1. Interpretación del formulario y validación

El análisis se inicia a partir de un formulario online utilizado por profesionales de la salud para derivar pacientes al equipo de salud mental. Estas derivaciones suelen realizarse en contextos de alta carga laboral, lo que genera respuestas rápidas, con errores de tipeo, uso informal del lenguaje y datos incompletos o desorganizados.

En esta etapa se realiza una lectura crítica de la estructura del formulario y se identifican las variables clave para el análisis. Se carga el archivo original, se validan los tipos de datos y se lleva adelante una primera limpieza para estandarizar fechas, edades y campos abiertos, dejando el dataset listo para su procesamiento automatizado.

2. Procesamiento y categorización automática

Con los datos ya estructurados, se desarrolló un sistema de procesamiento de texto automatizado para clasificar los motivos de derivación escritos en lenguaje natural. Se definió un diccionario de categorías clave con más de veinte etiquetas relevantes (como ansiedad, violencia, consumo, etc.) y sus variantes semánticas.

Mediante funciones personalizadas y el uso de la biblioteca RapidFuzz, se implementó una lógica de fuzzy matching que permite identificar patrones, sin depender de coincidencias exactas. Este enfoque permitió convertir expresiones libres en variables categóricas útiles para el análisis, aun con errores de tipeo, ambigüedad o redacción informal.

3. Análisis exploratorio, desarrollo de métricas y visualizaciones

Con las categorías ya procesadas, se llevó a cabo un análisis exploratorio de datos (EDA) para conocer mejor las características de la demanda. Se desarrollaron múltiples visualizaciones: frecuencia por rango etario (agrupado en bins), evolución mensual y semanal de las consultas, y proporción de personas que ya habían tenido tratamientos previos en salud mental, entre otras.

A su vez, se calcularon métricas operativas relevantes, como el promedio de consultas semanales, la cantidad de registros que no pudieron ser categorizados y la cantidad promedio de categorías por registro. Estas estadísticas complementan las visualizaciones al aportar un enfoque cuantitativo útil para la toma de decisiones institucional.

4. Generación y envío automático de reportes

Como cierre del flujo de trabajo, se implementó una automatización completa del reporte, que incluye la generación de archivos en distintos formatos: imágenes, planillas Excel y un informe PDF autogenerado con los principales hallazgos del análisis.

Todos estos productos son recopilados y enviados automáticamente por correo electrónico al equipo correspondiente, utilizando las bibliotecas smtplib y email. Esta integración le otorga al proyecto un carácter operativo y escalable, permitiendo entregar resultados accionables sin intervención manual, lo que representa un valor real en entornos de alta demanda.

Volver al portfolio