Blog

Guía de concordancia de patrones: ¿Qué significa y cómo hacerlo?

Encontrar patrones es fácil en cualquier tipo de entorno rico en datos; eso es lo que hacen los jugadores mediocres. La clave está en determinar si los patrones representan señal o ruido.

Nate Silver

Cualquiera que trabaje con datos entiende la importancia de los patrones. Tanto si se analizan grandes conjuntos de datos de forma holística como si se profundiza en el valor más granular, los patrones están en todas partes. Pueden ser universales -como el patrón de un número de tarjeta de crédito- o pueden ser exclusivos de su empresa, por ejemplo el patrón utilizado para mostrar la información de los productos en su sitio web.

Cuando se capturan los datos, no siempre siguen el patrón correcto. Las empresas tienen que aplicar diferentes métodos de cotejo, validación y transformación de patrones para obtener los datos en la forma y el formato requeridos.

En este blog, aprenderemos algunos conceptos importantes relacionados con la coincidencia de patrones y la validación, como por ejemplo

  1. ¿Qué significa la concordancia de patrones?
  2. ¿En qué se diferencia la concordancia de patrones de la concordancia de cadenas?
  3. ¿Cómo funciona la concordancia de patrones?
  4. ¿Cuáles son las razones más comunes para cotejar y validar patrones?
  5. ¿Cómo puede transformar sus datos en el patrón que necesita?

Vamos a sumergirnos.

¿Qué es la concordancia de patrones?

Un patrón se percibe como algo opuesto al desorden o al caos. Se trata de un modelo repetitivo que puede ser identificado a través de un gran conjunto de valores de datos pertenecientes al mismo dominio. Por lo tanto, la coincidencia de patrones puede definirse como:

Proceso de búsqueda de una secuencia o colocación específica de caracteres en un conjunto de datos determinado.

La concordancia de patrones produce resultados definitivos: la cadena de entrada contiene el patrón (es válida) o no lo contiene (es inválida). En caso de que la cadena no contenga el patrón requerido, el proceso de coincidencia suele ampliarse a la transformación de patrones, en la que se extraen subelementos de datos del valor de entrada y se reformulan para construir el patrón requerido.

Coincidencia de patrones frente a coincidencia de cadenas

Antes de hablar de cómo funcionan los algoritmos de concordancia de patrones, es importante entender su relación con los algoritmos de concordancia de cadenas. Ambos conceptos se tratan a menudo como la misma cosa, pero son bastante diferentes en su propósito y uso. El siguiente cuadro destaca algunas de las principales diferencias:

Coincidencia de patronesCoincidencia de cadenas
ComparaciónCompara una cadena con un patrón estándar que representa bloques o fichas de caracteres.Compara dos cadenas carácter por carácter.
EjemploComparando [email protected] con [name]@[domain].[domain-extension].Comparando a Elizabeth con Alizabeth.
ResultadosCalcula los resultados definitivos: o se encuentra el patrón o está ausente.Calcula las coincidencias exactas (coincidencia de polvo con polvo) o difusas (coincidencia de polvo con óxido).
UtilizaSe utiliza para analizar y extraer valores o transformar valores para que sigan patrones estándar.Se utiliza para corregir las faltas de ortografía, detectar el plagio e identificar los valores que tienen un significado o una composición de caracteres similar.

¿Cómo funciona la concordancia de patrones?

En pocas palabras, los algoritmos de concordancia de patrones funcionan con expresiones regulares (o regex). Para entender lo que es una expresión regular, piense en ella como un lenguaje que le ayuda a definir un patrón y a compartirlo con alguien, o en nuestro caso, con un programa informático.

Las expresiones regulares indican a los programas informáticos qué patrón deben buscar en los datos de las pruebas. A veces, el programa es lo suficientemente inteligente como para recoger patrones de un conjunto de valores de datos y generar automáticamente una regex. Algunos programas o herramientas tienen una biblioteca regex incorporada que contiene patrones de uso común, como número de tarjeta de crédito, números de teléfono de Estados Unidos, formatos de fecha, direcciones de correo electrónico, etc.

Ejemplo de patrón de dirección de correo electrónico coincidente

Para saber qué es un algoritmo de concordancia de patrones, tomemos el ejemplo de la validación del patrón de las direcciones de correo electrónico. El primer paso es definir la regex que comunica el patrón de una dirección de correo electrónico válida. Un patrón de muestra de una dirección de correo electrónico válida puede ser el siguiente:

[name]@[domain].[domain-extension]

En el lenguaje regex, este patrón se traducirá como

^[\w-.]+@([\w-]+.)+[\w-]{2,3}$

Dónde,

  • ^ significa el comienzo de una frase y $ el final.
  • [Se trata de una palabra que contiene caracteres alfanuméricos, un guión bajo, un guión o un punto.
  • +@ implica la adición de un símbolo @.
  • ([\w-]+.) significa una palabra que contiene caracteres alfanuméricos, guiones bajos o guiones, y termina con un punto.
  • +[\w-]{2,3} significa una palabra que contiene caracteres alfanuméricos o un guión, y esa palabra sólo puede tener al menos dos y como máximo 3 caracteres.

A continuación, puede ver una serie de direcciones de correo electrónico de prueba que se ejecutan a través de este patrón regex y los resultados producidos.

No.PruebaResultadoMotivo del fracaso
1.[email protected]Válido
2.pam.beesly_gmail.comInválidoFalta el símbolo @.
3.[email protected]InválidoEl dominio tiene un punto final inesperado.
4.[email protected]InválidoLa extensión del dominio tiene más de 3 caracteres (por ejemplo, com4).

Es obvio que definir manualmente las expresiones regulares es tedioso y requiere cierta experiencia. También puede optar por herramientas de normalización de datos que ofrezcan diseñadores de regex visuales (más sobre esto en una sección posterior).

Casos de uso de la concordancia de patrones

Ahora que sabemos qué es la concordancia de patrones y cómo funciona el algoritmo, puede que se pregunte dónde se utiliza exactamente. La concordancia de patrones es uno de los conceptos más fundamentales en diferentes campos, como la programación informática, la ciencia y el análisis de datos, el procesamiento del lenguaje natural, etc.

Si hablamos específicamente de la concordancia de patrones y de la validación en el campo de los datos, he aquí algunas de sus aplicaciones más comunes:

1. Validación de los envíos de formularios

Como la concordancia de patrones de datos distingue entre información válida y no válida, se utiliza sobre todo para validar los formularios enviados en sitios web u otras aplicaciones de software. La regex se aplica en los campos del formulario según sea necesario; a continuación se ofrecen algunos ejemplos de validaciones:

  • El nombre de una persona sólo contiene alfabetos o símbolos,
  • La dirección de correo electrónico sigue el patrón correcto,
  • El número de teléfono sólo contiene dígitos,
  • El número de la tarjeta de crédito no tiene más de 16 dígitos, etc.

2. Realización de operaciones de búsqueda y sustitución

La concordancia de patrones también es útil en aplicaciones que tienen funciones de búsqueda y sustitución de información textual. Algunas aplicaciones básicas sólo ofrecen la coincidencia carácter por carácter (o coincidencia de cadenas), mientras que otras también ofrecen la función de búsqueda y sustitución regex, que permite buscar patrones en documentos de texto y no sólo coincidencias exactas de cadenas.

3. Limpieza y normalización de los conjuntos de datos

Se puede intentar validar la información en el momento de la entrada de datos, como el envío de formularios, pero debido a las diversas limitaciones y restricciones que se encuentran en los sistemas, los conjuntos de datos de la organización pueden acabar con múltiples representaciones de la misma información. Aquí es donde se hace imperativo limpiar y estandarizar los conjuntos de datos antes de que puedan ser utilizados para operaciones rutinarias o de BI.

4. Análisis y extracción de valores

Dado que la concordancia de patrones busca una secuencia específica de caracteres en un valor determinado, este proceso también es útil para emparejar y extraer tokens de valores que residen en formas extendidas de información. Por ejemplo, puede querer extraer los dominios de una lista de direcciones de correo electrónico de empresas para averiguar en qué compañía trabaja la persona, o puede extraer la ciudad y el país de residencia de los campos de dirección que contienen 3-4 líneas de información.

¿Cómo hacer coincidir los patrones?

Las empresas suelen adoptar dos enfoques a la hora de cotejar y validar patrones: uno es escribir scripts de código interno y el otro es utilizar herramientas de software de terceros. Analicemos la aplicación de ambos enfoques.

1. Comparación de patrones mediante código

Cuando se trata de limpiar y estandarizar datos, la solución por defecto de muchas organizaciones es crear aplicaciones internas personalizadas y codificar scripts para diversas operaciones de estandarización, incluyendo la coincidencia de patrones y la transformación. Aunque parezca interesante, puede ser todo un reto.

Why in-house data quality projects fail

Read this whitepaper to understand the consequences of ignoring poor data quality, gain insight on why in-house data quality solutions fail and at what costs.

Download

Veamos un fragmento de código JavaScript que valida las direcciones de correo electrónico.

function emailValidation(input)
{
var regex = /^\w+([.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+$/;
if(input.value.match(regex))
{
alert("Valid"); return true;
}
si no
{
alert("Invalid"); return false;
}
}

Tenga en cuenta que este fragmento de código sólo valida las direcciones de correo electrónico y no las transforma en un patrón estandarizado en caso de que no sean válidas. Además, sólo valida el campo de la dirección de correo electrónico, por lo que para hacer coincidir diferentes patrones, se necesita una implementación de código similar para cada uno. Por último, la regex que valida las direcciones de correo electrónico sigue siendo un poco más fácil de descifrar. Si consideramos los campos de datos que tienen patrones complejos, las expresiones regulares pueden abarcar varias líneas. Por ejemplo, el siguiente fragmento de código busca coincidencias de patrones para las URL.

function URLValidation(input)
{
var regex = /[-a-zA-Z0-9@:%.+~#=] {1,256}.[a-zA-Z0-9()]{1,6}\b ([-a-zA-Z0-9()@:%+.~#?&//=]*)
…/gi;
if(input.value.match(regex))
{
alert("Valid"); return true;
}
si no
{
alert("Invalid"); return false;
}
}

2. Comparación de patrones mediante herramientas informáticas

Por las razones mencionadas anteriormente, el mantenimiento de las aplicaciones personalizadas puede consumir muchos recursos. Requiere la contratación de un equipo de desarrolladores internos a los que los usuarios de la empresa se dirigen constantemente con peticiones de depuración y actualización de la funcionalidad del código.

Por ello, muchos directivos e ingenieros de datos de alto nivel se inclinan por la idea de adoptar herramientas sencillas para construir, cotejar y transformar patrones que puedan ser utilizadas fácilmente tanto por el personal de TI como por el que no lo es.

Dichos comparadores de patrones están empaquetados con diferentes características. A continuación se comentan las características más comunes.

1. Creadores de patrones visuales

La función de creación de patrones visuales ofrece una interfaz gráfica de usuario de arrastrar y soltar que puede utilizarse para crear patrones. Mientras un usuario suelta bloques de patrones o tokens en el espacio de trabajo, se genera una regex equivalente en el backend. Esta característica elimina la necesidad de conocimientos técnicos y anima a los usuarios ingenuos a construir también patrones.

A continuación se muestra una captura de pantalla del diseñador de patrones visuales en DataMatch Enterprise:

2. Coincidencia de patrones por tipo de datos

Otra característica interesante de las herramientas de concordancia de patrones es la capacidad de perfilar columnas enteras por sus patrones de tipos de datos. Por ejemplo, puede perfilar la columna del número de teléfono por el tipo de datos entero, y la fracción de valores que contienen otros símbolos y caracteres además de los dígitos puede marcarse como no válida. Esto puede hacerse para obtener una evaluación rápida sobre el esfuerzo de normalización necesario para arreglar los patrones no válidos.

A continuación se muestra una captura de pantalla de los patrones de coincidencia por tipo de datos en DataMatch Enterprise:

3. Coincidencia de patrones mediante la biblioteca regex

Muchas herramientas vienen con bibliotecas regex incorporadas llenas de patrones de uso común, como números de tarjetas de crédito, números de teléfono de Estados Unidos, formatos de fecha, direcciones de correo electrónico, etc. Además, también puede crear patrones personalizados (especializados para su uso empresarial) y guardarlos en la biblioteca para reutilizarlos.

A continuación se muestra una captura de pantalla de la biblioteca regex en DataMatch Enterprise:

4. Paquete completo de limpieza y normalización de datos

Una de las mayores ventajas de este tipo de herramientas es que, en la mayoría de los casos, vienen acompañadas de otras funciones de limpieza y normalización de datos que son fundamentales para transformar los datos en una forma y un formato aceptables. Porque una vez que se tiene el informe de concordancia de patrones que muestra qué valores de datos son válidos y cuáles no, el siguiente paso importante es fijar los patrones también.

Por eso, adoptar un sistema integral que se encargue de varias disciplinas de gestión de la calidad de los datos -incluyendo la elaboración de perfiles de datos, la limpieza, la normalización, el cotejo y la fusión- puede ser una gran ventaja.

A continuación se muestra una captura de pantalla de varias funciones de calidad de datos que ofrece DataMatch Enterprise :

Optar por una solución sin código que construya, haga coincidir y transforme patrones

Aunque en este blog nos hemos centrado sobre todo en la coincidencia de patrones, el arte de la transformación de patrones es igual de interesante, aunque también supone un reto. Por esta razón, muchas organizaciones prefieren proporcionar a sus equipos herramientas de limpieza y estandarización de datos de autoservicio que están diseñadas con funciones de diseño, correspondencia y transformación de patrones. La adopción de este tipo de herramientas puede ayudar a su equipo a ejecutar complejas técnicas de limpieza y normalización de datos en millones de registros en cuestión de minutos.

DataMatch Enterprise es una de esas herramientas que facilita a los equipos de datos la rectificación de errores de patrón con rapidez y precisión, y les permite centrarse en tareas más importantes. Para saber más sobre cómo puede ayudar DataMatch Enterprise, puede descargar una prueba gratuita hoy mismo o reservar una demostración con un experto.

In this blog, you will find:

Try data matching today

No credit card required

"*" señala los campos obligatorios

Hidden
Este campo es un campo de validación y debe quedar sin cambios.

Want to know more?

Check out DME resources

Merging Data from Multiple Sources – Challenges and Solutions

¡Vaya! No hemos podido localizar tu formulario.