La nueva iniciativa de extracción de documentos para Bancolombia

Luis Fernando Vargas Agudelo
Bancolombia Tech
Published in
5 min readMay 20, 2021

Actualmente, la digitalización de documentos es un trabajo sistemático y lento. Esto se ve reflejado en los tiempos de respuesta de nuestros servicios, situación que desmejora la calidad de los mismos.

Gracias a los avances tecnológicos, han surgido diferentes alternativas que permiten acelerar la digitalización de documentos. Estas varían en el grado de complejidad para su construcción, y en la forma de consumirlas.

Con eso en mente, planteamos y seleccionamos diferentes soluciones y documentos que se pueden ajustar a estas mejoras; el objetivo es apoyar fuertemente el análisis inteligente de documentos dentro de la organización. (Ilustración 1)

Ilustración 1, flujo actual y propuesta para la extracción documental.

Para el desarrollo de esta implementación nos trazamos la meta de extraer el texto de las cartas laborales que expiden las diferentes empresas. A parte de esto, buscamos implementar un servicio que nos permitiera identificar las entidades importantes que el negocio requiere para su proceso definido.

Comenzamos realizando un análisis de los distintos impedimentos existentes, problemas como; la calidad de la imagen, que el documento no sea estructurado, la validez del mismo, entre otros. Con dicha información buscamos las herramientas más útiles; dando como resultado que los servicios de AWS, Google y Tesseract eran los que mejor se ajustaban
a la necesidad.

Con las herramientas definidas planteamos una solución en distintas fases. Primero, la etapa de reconocimiento óptico de caracteres (OCR); donde el texto es extraído de los documentos. Después, el análisis por detectores de entidades con el fin de obtener la información relevante como fechas, documento de identificación, nombres y apellidos.

Ilustración 2, flujo del proceso de análisis documental.

Para realizar la etapa inicial (OCR) utilizamos Textract de AWS, Cloud Vision de Google y Tesseract como alternativa Open Source. Una vez obtenido el texto de cada OCR usamos Comprehend de AWS y Cloud Natural Language de Google como detectores de entidades.

Los detectores de entidades son servicios de procesamiento de lenguaje natural (NLP) que usan el aprendizaje automático para encontrar información y relaciones en textos, de esta manera es posible extraer las entidades que nos interesan en bloques de texto.

Creamos una interfaz que permitiera a los diferentes usuarios cargar las cartas laborales y seleccionar la combinación entre el sistema de OCR y el detector de entidades, este sitio web fue creado en React y desplegado en un bucket de S3.

Ilustración 3, página de inicio en el sitio web desplegado.

EL sitio web tiene 5 pasos para el análisis y extracción de información del documento:

1. Cargar carta laboral: en este paso, al interactuar con el botón “seleccionar archivo”, se despliega una ventana que nos permitirá acceder a los archivos de nuestra computadora, allí seleccionamos el documento que deseamos analizar.

2. Subir carta laboral: en este paso almacenamos el documento en un bucket de S3.

3. Seleccionar el OCR: podremos escoger el reconocimiento óptico de caracteres que deseemos.

4. Seleccione el detector de entidades: podremos utilizar esta opción para escoger alguno de los tres detectores de entidades anteriormente mencionados.

5. Procesar: al seleccionar procesar, nuestro despliegue realizará todos los pasos anteriores en las combinaciones escogidas y nos arrojará la información obtenida del documento analizado.

Al tener estas herramientas y las posibilidades de combinarlas, pudimos obtener una conclusión inicial; el detector de entidades debía ser más específico, hecho a la medida para el documento. Con dicha premisa nos pusimos en marcha para desarrollar un detector de entidades que nombramos “propio”.

Pruebas y resultados

Realizamos pruebas en 50 documentos de tipo carta laboral, en donde planteamos las tres posibles combinaciones de OCR con el detector de entidades “propio”.

En pruebas realizadas al servicio web, pudimos concluir que el servicio provisto por AWS para el OCR tiene un mejor rendimiento que sus homólogos Google Cloud Visión y Tesseract. Por parte del detector de entidades, las pruebas ratificaron la premisa inicial; necesitamos crear un algoritmo que se ajuste específicamente a este tipo de documento. Aunque no esté estructurado, comparten una información común que nos ayuda a realizar mejores extracciones.

Arquitectura “cloud”

Para la implementación hicimos uso de una infraestructura cloud que nos permitiría brindar una muy buena experiencia en el proceso de extracción.

Para la disponibilización alojamos el frontend en un bucket de Amazon Simple Storage (S3) y desarrollamos el sitio web con React. El backend se desplegó usando Amazon Lambda, Amazon API Gateway y una instancia de Amazon Elastic Compute Cloud (Amazon EC2), consumimos los servicios provistos por Google Cloud Services.

Adicionalmente, el sitio web cuenta con una capa transversal en Amazon S3 para el almacenamiento de los documentos de entrada para análisis y respuestas de las API utilizadas (Ilustración 4).

Ilustración 4, Arquitectura Cloud

Es importante resaltar que el servicio web aún se encuentra en periodo de prueba, por lo tanto, no se encuentra disponible para uso interno del banco.

Los resultados obtenidos con esta iniciativa son positivos y los números respaldan el potencial que tiene el sistema para llevarlo a un entorno productivo, iniciativa que puede impactar de manera indirecta procesos como fraude y validación cruzada de información con bases de datos existentes.

Seguimos trabajando en tareas que permitan obtener mejores resultados, y agilizar más los flujos documentales.

Si tienes dudas o anotaciones, escríbelas en la caja de comentarios; estaremos muy atentos para responderlas.

--

--