Las expresiones regulares son, quizás, uno de los recursos más utilizados en la historia de la informática, han estado presentes desde los primeros editores de texto, soportadas también desde los primeros sistemas operativos y hoy en día pueden utilizarse en casi la totalidad de los lenguajes de programación que existen.
Su uso primigenio no difiere mucho del actual. Inicialmente, las expresiones regulares se popularizaron como una forma extremadamente potente de encontrar patrones dentro de un texto. En esencia, hoy en día, se siguen utilizando para exactamente lo mismo: encontrar una o todas las apariciones de un determinado patrón de caracteres dentro de un texto o bien comprobar que una cadena de texto cumple con un determinado patrón definido.
Aunque su uso está limitado a uno de los dos escenarios anteriores, en la práctica, las expresiones regulares son un recurso extraordinariamente útil para cubrir multitud de casos de uso. En Athento SE, las expresiones regulares son la base de distintos procesos de Clasificación Automática de documentos, Extracción de Información y Validación de metadatos. En este post, nos centraremos en las distintas estrategias de Clasificación de documentos usando expresiones regulares que ofrece Athento Smart Engine.
Clasificando Documentos con Expresiones Regulares
La Clasificación Automática de documentos consiste en la asignación de una o varias categorías o tipos documentales a un determinado documento según ciertos criterios predefinidos. Como resultado de un proceso automático de clasificación, un usuario esperaría que un documento procesado cayera en el mismo saco que el resto de documentos del mismo tipo que ya existen en el sistema con la mínima intervención posible por parte del usuario en el proceso.
Los algoritmos de clasificación de documentos necesitan seguir un determinado criterio a la hora de clasificar, una heurística que indique qué rasgos de los documentos deben utilizarse y de que forma para decidir incluir un documento dentro de un grupo u otro. Athento SE dispone de distintos algoritmos de clasificación que usan distintos criterios para tomar esta decisión:
- Clasificación por Similitud: el sistema agrupa los documentos por su grado de similitud textual o visual.
- Clasificación por Template Matching: el sistema categoriza los documentos usando una imagen plantilla que identifica de forma única a cada tipo de documento.
- Clasificación por Aprendizaje Automático: el sistema aprende a clasificar los documentos de forma progresiva atendiendo al feedback de los usuarios.
- Clasificación por Expresiones Regulares: el sistema clasifica los documentos en base a unos patrones textuales definidos previamente para cada tipo documental.
Cada uno de los métodos de clasificación anteriores tienen sus ventajas e inconvenientes y la elección para el usuario dependerá siempre del caso de uso que necesite cubrir. La clasificación por Similitud es tremendamente efectiva cuando los documentos de un mismo tipo son muy similares entre ellos y distintos de los documentos del resto de tipos documentales (por ejemplo, cuando queremos clasificar facturas de distintos proveedores). Para la clasificación por Template Matching, es necesario que cada tipo documental contenga una imagen patrón identificativa (por ejemplo, un logo o membrete). La clasificación por Aprendizaje Automático es una buena opción para aquellos casos en el que el resto de métodos no encajan o en los que los documentos son realmente difíciles de clasificar. Aunque es necesario un conjunto de entrenamiento previo con documentos ya clasificados en cada uno de los tipos documentales.
Finalmente, tenemos la clasificación por Expresiones Regulares. En este caso, se definen para cada tipo documental uno o más patrones de texto que los documentos de ese tipo pueden contener y que, en el caso de encontrar una coincidencia del patrón en el texto de un documento, inicialmente se puede considerar dicho documento perteneciente a ese tipo documental. Las expresiones regulares se definen con un lenguaje estándar para definir patrones textuales. Este lenguaje es bastante potente y permite definir desde simple palabras claves como "FACTURA" o "CONTRATO" hasta construcciones realmente complejas. Nuestra experiencia nos dice que en la práctica totalidad de los casos, los usuarios pueden clasificar perfectamente sus documentos usando expresiones regulares sencillas o incluso simples palabras sueltas como las anteriores. En cualquier caso, cuando se tiene la seguridad de que en los documentos pueden encontrarse determinados patrones de texto que los identifican de forma única con respecto a los documentos de otros tipos, este algoritmo de clasificación es, sin duda, el que mayor porcentaje de acierto ofrece.
Estrategias de Clasificación usando Expresiones Regulares
Para habilitar la Clasificación por Expresiones Regulares en Athento SE, simplemente, hay que completar dos sencillos pasos. En primer lugar, activar la operación de Clasificación (cuya configuración veremos a continuación) dentro de una Serie concreta. En segundo lugar, es necesario definir para cada tipo documental en los que queramos clasificar los documentos sus expresiones regulares asociadas.
![]() |
Configuración de Workflow de Operaciones |
Una vez creados los tipos documentales, las expresiones regulares pueden asociarse a los mismos de forma sencilla a través de la interfaz:
Cada tipo documental puede tener asociadas una o varias expresiones regulares. Por defecto, el sistema tratará de encontrar una coincidencia en el texto con alguno de los patrones definidos por el usuario bajo la premisa de que el documento donde se encuentre dicho patrón debe tener el tipo documental asociado al mismo ya que, en principio, suponemos que el usuario ha definido patrones únicos para cada tipo documental. Si bien, esto es cierto en la mayoría de las ocasiones, nos encontramos con casos de uso más complejos en los que los tipos documentales no se pueden especificar mediante expresiones regulares disjuntas. Por este motivo, en Athento SE se han desarrollado distintas estrategias de aplicación de expresiones regulares:
![]() |
Estrategias de Clasificación por Expresiones Regulares |
- Clasificación Perezosa (Lazy): todas las expresiones regulares asociadas a todos los tipos documentales se van aplicando una a una sin un orden determinado hasta que una de ellas produce un emparejamiento. En ese momento, el sistema daría por concluido el proceso de clasificación y asignaría el tipo documental asociada a dicha expresión. En otras palabras, se clasifica el documento con la primera expresión regular que produce un emparejamiento positivo. Esta estrategia es la más rápida y puede ser usada cuando hay una seguridad de que los distintos documentos de cada tipo documental no pueden compartir ninguna expresión regular.
- Clasificación "First Occurrence": en esta estrategia, el sistema registra todos los emparejamientos para todas las expresiones regulares configuradas para todos los tipos documentales y selecciona aquella cuyo emparejamiento empieza antes en el texto (en orden de aparición). En este caso, se prioriza el orden de aparición de las expresiones regulares en el texto.
- Clasificación "Longest": en esta estrategia, el sistema registra todos los emparejamientos para todas las expresiones regulares configuradas para todos los tipos documentales y selecciona la más larga en términos de número de caracteres de la expresión regular.
- Clasificación por Mayoría (Majority Vote): en esta estrategia, el sistema registra todos los emparejamientos para todas las expresiones regulares configuradas para todos los tipos documentales y selecciona aquel tipo documental que ha producido un mayor número de emparejamientos.
Descarga de forma gratuita el Caso de Uso: Clasificación automática de Documentos Legales para seguir aprendiendo cómo funcionan las expresiones regulares y comprobar a nivel práctico cómo se configuran las expresiones regulares desde la interfaz de Athento SE para clasificar documentos de forma automatizada.
