martes, 11 de mayo de 2010

Detección de duplicados en los nombres

Un problema usual tanto en el sector público como en el privado es la duplicación de registros por causa de errores en la información. Si hay un error en el documento de identidad fácilmente se abre un nuevo registro. En algunos casos sólo se cuenta con los nombres y apellidos como llave de identificación. Los nombres propios de las personas se escriben de diversas maneras y se transcriben de acuerdo a una aproximación a la fonología interpretada por el digitador, aún en casos en que está copiando el nombre. Con los apellidos es más usual que se presenten errores tipográficos por simple duplicación, omisión, transposición, o sustitución de un pequeño número de caracteres.

Es conveniente guardar en campos separados primer nombre, demás nombres, primer apellido y segundo apellido. Para su depuración se debe proceder primero a una corrección de las posibles duplicaciones, omisiones, transposiciones o sustituciones de un pequeño número de caracteres.

Una alternativa para ello es generar una consulta que muestre todos aquellos nombres o apellidos únicos. Por inspección visual se identifican los errores tipográficos más comunes, los cuales se van almacenando en una tabla para nombres y otra para apellidos, cada una con dos campos, el primero contendrá el nombre o apellido mal tipografiado y el segundo la forma correcta. Se podrá utilizar luego en sucesivas ocasiones para ejecutar una rutina automatizada de corrección de todos aquellos nombres o apellidos que tienen tal problema.

La segunda verificación previa es identificar si hay mala ubicación de nombres y apellidos en los campos correspondientes. Los casos comunes son cinco: colocación de sólo primer nombre y primer apellido de manera consecutiva, quedando el primer apellido en el campo del segundo nombre; colocación de los nombres en los campos de apellidos y viceversa; colocación de todo el nombre en un solo campo; colocación del primer y segundo nombre en el campo del primer nombre con el objeto de darle cabida a un tercer nombre en el campo del segundo nombre, en vez de colocar segundo y tercer nombre en el campo de segundo nombre; mala separación de los nombres, por ejemplo: maría del pilar separado en “maría del” y “pilar”.

Y la tercera verificación previa es la adecuada separación de los nombres. Por ejemplo: “delaossa” debería estar escrito como “de la ossa”. La rutina de depuración haría una verificación por separado del sufijo “de la” y del apellido “ossa”.

Una vez se ha realizado tal tipo de depuración es necesario crear otros cuatro campos en dónde se almacenará la transcripción fonética:





  • Eliminar toda la acentuación gráfica (tildes) de las vocales.





  • Eliminar todo carácter ajeno a las letras: ".", "-", "’", " "





  • Sustituir las grafías con igual sonido: "g" por "j", "c" y "z" por "s", "b" por "v", "ll" por "y", "w" por "u", "k" por "q", "m" por "n", o realizar sustituciones directas: "ñ" por "n", "y" por "i".





  • Eliminar la muda “h”.





  • Eliminar las dobles consonantes: "gg" por "g", "ss" por "s", "ll" por "y", "rr" por "r", "dd" por "d", "tt" por "t", "nn" por "n", "pp" por "p".





  • Corregir grafías que vienen de lenguas ajenas al español: "tz" por "x", "tx" por "x", "ph" por "f", "x" por "j", "jh" por "y"





  • Corregir las tres últimas letras de grafías que vienen de lenguas ajenas al español: "tte" por /"t", "sse" por "s", "lle" por /"l", "ck" por "c".




  • Se debe estar atento al orden en que se debe realizar dicho proceso, por ejemplo, se realiza la eliminación de dobles consonantes antes de la conversión de grafías.

    La comparación de nombres y apellidos se realiza respecto a estos campos fonéticos.

    Debido a la influencia de los medios de comunicación, los nombres propios de origen extranjero tienen grafías demasiado variadas: Bregite, Briget, Brigeth, Briggette, Briggite, Briggith, Briggitte, Briggyth, Brigide, Brigit, Brigite, Brigith, Brigithe, Brigitte, Brigyth, Brijida, Brygithe. Por ello para los nombres propios recomiendo realizar una codificación Soundex sobre el nombre fonético.

    Soundex es un algoritmo fonético para indexar nombres por su sonido. Su origen es el inglés, por tanto se debe verificar si es necesario realizar ajustes para su uso en el idioma español, no obstante, si se aplica sobre el nombre fonético, dichos ajustes ya fueron realizados.

    El esquema del Soundex es crear un código de cuatro caracteres. El primero se corresponde con el primer carácter del nombre. Sobre las siguientes letras se desechan las vocales y respecto a las tres primeras consonantes se realiza una trasformación numérica: “B”, “F”, “P” y “V” valen 1, “C”, “G”, “J”, “K”, “Q”, “S”, “X”, “Z” valen 2, “D” y “T” valen 3, la “L” vale 4, la “M” y la “N” valen 5 y la “R” vale 6.

    De este modo, todas las grafías mostradas del nombre Brigit se transforman en V623.

    En bases de datos grandes es posible encontrar muchos homónimos por tanto esta estrategia siempre se debe combinar con la coincidencia de la fecha de nacimiento u otra información disponible.

    Por experiencia, sólo utilizando la estrategia de nombres y sin contar con información que permita verificar de mejor manera la correcta digitación de los nombres, la tasa de éxito es de alrededor del 50%.