Expresiones regulares (I)
Llegados a este punto (1) necesitamos algo más que un programa de acceso y manejo de pdf para avanzar en lo que nos interesa, que es algo más que la "mera" captura del texto (2). En realidad, los recursos ya estaban ahí desde antes que aprendiéramos a acceder al contenido de un documento, pero no habían resultado necesarios. Ahora sí.
Continuando con la búsqueda de soluciones al problema aun no resuelto de mejorar el manejo del texto pdf resultante de la aplicación de la librería PyPDF2 (3), a la vista de la insuficiencia de la segmentación del contenido, parece necesario replantearse el enfoque actual (4) para incluir eso que se ha venido en llamar "operaciones con expresiones regulares" (5).
Las expresiones regulares permite la búsqueda de patrones en textos para encontrar coincidencias, realizar sustituciones o eliminar contenidos. Python hace uso del módulo re, que no necesita ser instalado, pero sí importado o llamado para su uso en los script (import re).
Dada la riqueza (y complejidad) del procedimiento de crear y aplicar los recursos de este módulo, será necesario que le dediquemos tiempo y lo trabajemos de forma específica (6), aunque procuraré acercarme todo lo posible al origen desde el que surgió la necesidad de plantearse este enfoque, esto es, mi intención es que lo que aprendemos sobre re nos sirva para aprender a manejar de forma más eficiente el texto obtenido con PyPDF2.
Estoy convencido que de ello surgirán planteamientos de trabajo enriquecedores, que superen los objetivos que ahora nos planteamos (7), pero de momento me contento con...
- Limpiar y dar la forma deseada al texto pdf capturado.
- Automatizar el acceso a contenido textual concreto.
- Generar contenido nuevo a partir y en función del presente en el texto.
De ahí el subtítulo de esta entrada, que es, más que nada, una declaración de intenciones que da continuidad (y enlaza) con la temática precedente en la que se enmarca, pero se adentra ahora en el interesante mundo del manejo de las expresiones regulares como herramientas para el trabajo con textos, que no dejan de ser cadenas complejas más o menos extensas (8).
NOTAS
(1) Nosotros por el camino de automatizar el acceso a pdf, pero bien podría haber sido por otro. En todo caso, aquí nos viene bien porque podemos complementar el acceso al texto con su manipulación, incluyendo (en ella) el acceso a datos concretos, presentes en el texto.
(2) Siendo sinceros, esto nos lo planteamos ahora que ya sabemos cómo acceder al contenido de los pdf. En un momento anterior, nos sentiríamos más que satisfechos con esos logros que ahora parecen insuficientes. Pensándolo bien, esta actual "insatisfacción" no deja de ser buen síntoma.
(3) Además de lo pendiente en cuanto a "limpieza" de contenido, aun nos falta trabajar en el acceso a datos de documentos pdf muy estructurados (en formato tabla). Este tema lo trataremos (en su momento) de forma específica desde la sección [DATOS], ya que a ella corresponde por contenido.
(4) Con independencia del interés que ese conocimiento sobre procedimientos de segmentación tiene para mejorar nuestro manejo del contenido textual; que es mucho y muy importante.
(5) Un contenido muy interesante. Te aconsejo leer con detenimiento [esta página]. En ella se explica en qué consiste el módulo re. Temática nada sencilla, por cierto.
(6) Esto es, no ligada expresa y específicamente la trabajo con PYPDF2
(7) En el fondo de lo que se trata es de acercarnos al análisis de textos como parte del análisis de datos, campo este de trabajo complementario del de la automatización de la composición de textos complejos. Estos dos grandes objetivos siguen siendo nuestras dianas.
(8) Dada la complejidad y extensión de esta temática, muy posiblemente compatibilice su tratamiento con el de otras cuestiones de interés para este blog. Digo esto porque ello puede suponer que el estudio del tema se prolongue en el tiempo.
