El Formato de Documento Portátil, mejor conocido por sus siglas en inglés como “PDF”, es un formato abierto y estandarizado para mostrar y compartir documentos electrónicos. Una de las ventajas del PDF es que permite preservar toda la información del archivo original, incluyendo imágenes, texto, gráficos, hojas de cálculo y demás. Adicionalmente, este tipo de archivo puede ser consumido, independientemente de la plataforma o sistema operativo, permitiendo así, su fácil acceso. Por estas características, nos hemos beneficiado mucho del formato y los hemos llegado a querer.
No obstante, cuando hablamos de la apertura de conocimiento y datos, este formato puede presentar grandes obstáculos durante la extracción automatizada de su contenido. Hay muchos datos, imágenes y texto en formatos pdf que no pueden ser fácilmente trabajados con nuevas tecnologías de inteligencia artificial, y así el formato está generando frustraciones. En este artículo, expondremos tres retos que se deben tomar en cuenta a la hora de emprender un proyecto de extracción y análisis automatizados de datos y texto, contenidos en archivos PDF. También comentaremos algunas soluciones que han surgido para abordar estos retos; quizá brinden esperanza para superar las frustraciones y re-establecer nuestro cariño a los pdf.
1 Reto 1: Identificar patrones en un corpus heterogéneo
El formato PDF fue pensado inicialmente para ser consumido por un ser humano y no por una computadora, lo que justifica la ausencia de un estándar de estilo, jerarquización o enmarcación de contenido. Esto, diferencia el pdf de otros formatos como los archivos HTML que sí fueron concebidos para ser consumidos por un navegador (una máquina). Y es precisamente este libre albedrío en la creación de los PDFs, lo que constituye un reto para la máquina al momento de querer identificar patrones sobre todo en un corpus de documentos muy diferentes entre sí.
En la actualidad, una de las herramientas más conocidas para la extracción de información de documentos PDF es la librería de Python PDFMiner. Esta herramienta se enfoca en la extracción y análisis exclusivamente de texto. Ofrece funcionalidades como reconocimiento de tamaño de texto, que puede servir para jerarquizar contenido y así diferenciar títulos y subtítulos del resto del contenido. Otra ventaja de esta librería es que permite extraer la tabla de contenidos y transformar un archivo de PDF a HTML. Sin embargo, cuando el tamaño de la tipografía difiere de tal manera entre los documentos, encontrar un patrón para poder determinar una jerarquía común al corpus, se vuelve una tarea imposible.
2 Reto 2: Extraer datos y texto contenidos en imágenes dentro de archivos pdf
Como ya habíamos mencionado, una de las ventajas del PDF es que puede almacenar todo tipo de contenido en un mismo archivo. El reto en este sentido surge cuando se requiere extraer datos y texto de documentos escaneados (imágenes). Para ello deberemos recurrir a una tecnología que permita traducir estas imágenes a los datos o texto que necesitamos. Este tipo de tecnología se llama Reconocimiento Óptico de Caracteres u OCR por sus siglas en inglés. Existen herramientas que prometen ayudar a superar esta dificultad, aunque seguramente con cierto margen de error que dependerá, por ejemplo, de la calidad de la imagen escaneada. Entre las más famosas está Tesseract, un proyecto de Google Open Source que se utiliza para detección de texto en dispositivos móviles, videos y en el detector de correo no deseado de Gmail. Para los amantes de Python también se encuentra a disposición la librería pypdfocr.
3 Reto 3: Extraer contenido tabular y vinculado
Otro reto importante que debemos considerar durante la extracción de información de PDFs, es el contenido vinculado. En el caso de querer extraer información tabular, herramientas abiertas como Tabula nos ayudan en el proceso y sin embargo en ciertos casos puede no funcionar como esperamos. Supongamos que tenemos una tabla con dos columnas A y B. Supongamos ahora que vinculadas a la celda A1 están tres celdas de la columna B y que solamente B4 está vinculada A2, tal como se muestra en la imagen abajo:
Aunque para un ser humano es sencillo determinar que B1, B2 y B3 corresponden a A1, no ocurre de la misma manera con una computadora. El mismo problema de asociación ocurre con hipervínculos, pies de página, anexos, etc.
Cabe destacar que, aunque este formato presenta algunos retos importantes para la extracción automatizada de contenido, también es un formato que en la actualidad es extensamente utilizado. Por esta razón, es difícil decidir a priori si este tipo de archivos deberán ser descartados o no como fuente de datos en proyectos de extracción y análisis automatizadas de información. Esto ocurre sobre todo en los casos en que lamentablemente no existen muchas más fuentes alternativas de información para hacer un proyecto viable. También se deberá analizar la magnitud en la que estos retos están presentes en nuestros datos y del costo que su limpieza manual genere a nuestro proyecto. Finalmente se deberá tomar en cuenta la calidad de contenido del documento. Muchas veces, no merece la pena trabajar en la limpieza de contenido que está catalogado como irrelevante.
Ahora, tú cuéntanos, ¿qué frustraciones has experimentado cuando intentas extraer conocimiento de un PDF de manera automatizada? Y ¿has encontrado manera de superarlas?
Por Karen Mokate, Jefa de la División de Gestión de Conocimiento y Daniela Collaguazo del Sector de Conocimiento y Aprendizaje
Leave a Reply