Un algoritmo fonético es un algoritmo para indexar palabras por su pronunciación.
La mayoría de los algoritmos fonéticos se desarrollaron para usar con el idioma inglés; en consecuencia, la aplicación de las reglas a las palabras en otros idiomas podría no dar un resultado significativo.
Algoritmos de normalizacion para busquedas de pacientes en mpi
1. Dr. Humberto F.
Mandirola Brieux
10/01/2020
www.biocom.com
1
A L G O R I T M O S D E
N O R M A L I Z A C I Ó N O
C O M P A R A C I Ó N
P A R A B Ú S Q U E D A
E N P A D R O N E S M P I
2. ALGORITMOS DE NORMALIZACIÓN O
COMPARACIÓN PARA BÚSQUEDA EN
PADRONES
• Estos algoritmos nos permiten identificar palabras similares
midiendo las diferencias entre palabras.
• Hay de 2 tipos
– Fonéticos
– Comparativos
10/01/2020 www.biocom.com 2
3. ¿QUÉ ES UN ALGORITMO
FONÉTICO?
• Un algoritmo fonético es un algoritmo para indexar palabras
por su pronunciación.
• La mayoría de los algoritmos fonéticos se desarrollaron para
usar con el idioma inglés; en consecuencia, la aplicación de las
reglas a las palabras en otros idiomas podría no dar un
resultado significativo.
10/01/2020 www.biocom.com 3
4. ¿CUÁLES TENEMOS
DISPONIBLES?
• Soundex es tal vez uno de los mas conocidos, se basa en qué tan cerca
están dos palabras dependiendo de su pronunciación.
• Levenshtein funciona distinto, mide la diferencia entre dos palabras
escritas.
• Needleman-Wunsch: Fue una de las primeras aplicaciones de
programación dinámica para comparar secuencias biológicas. El algoritmo
fue desarrollado por Saul B. Needleman y Christian D. Wunsch y publicado
en 1970.
• Metaphone: Mejora fundamentalmente el algoritmo Soundex mediante el
uso de información sobre variaciones e inconsistencias en la ortografía y
pronunciación en inglés para producir una codificación más precisa, que
hace un mejor trabajo al combinar palabras y nombres que suenan
similares.
• Double Metaphone. Contrariamente al algoritmo original cuya aplicación10/01/2020 www.biocom.com 4
5. ¿EN QUE PROBLEMAS EN LOS
CUALES NOS PUEDEN AYUDAR?
• Considerar un algoritmo fonético mejora la
performance de las búsquedas en los MPI para
ayudar a detectar posibles errores de tipeo. Es
común que no sepamos escribir un nombre,
por ejemplo:
• Lopez o Lopes
• Viviana o Biviana o Bibiana
• Nuñez o Nunes
• Jessica o Yésica10/01/2020 www.biocom.com 5
7. EJERCICIO LEVENSHTEIN 1
Pusimos viviana en source y viviana en target apretamos calculate y nos da que la distancia
de diferencia entre esas 2 palabras es 1
10/01/2020 www.biocom.com 7
12. EJERCICIO LEVENSHTEIN 6
Conclusión del ejercicio de Levenshtein: A medida que las palabras son mas diferentes el
numero de Levenshtein aumenta. Ejemplos de códigos de este algoritmo en el lenguaje que
quieran esta lleno en internet.
10/01/2020 www.biocom.com 12
14. AHORA PROBEMOS CÓMO FUNCIONA
EL ALGORITMO DE SOUNDEX.
Soundex tienen la propiedad de que las palabras pronunciadas de manera
similar producen la misma clave de Soundex y, por lo tanto, pueden usarse
para simplificar las búsquedas en bases de datos donde se conoce la
pronunciación pero no la ortografía.
Lo que hace Soundex es devolvernos una cadena de 4 caracteres de largo,
comenzando con una letra, para ver las diferencias fonéticas entre
esas palabras comparamos los códigos Soundex.
Para esto vamos a usar la siguiente página
https://www.ics.uci.edu/~dan/genealogy/Miller/javascrp/soundex.htm
10/01/2020 www.biocom.com 14
17. SET MÍNIMO DE DATOS
• Apellido (primero y siguientes)
• Nombre (primero y siguientes)
• sexo
• Tipo de Documento
• Número de documento
• Fecha de Nacimiento
Cálculo de Pesos Teniendo en cuenta los candidatos obtenidos en el punto anterior se utiliza el
algoritmo Jaro-Winkler para medir el grado de similitud entre dos cadenas. La puntuación que
devuelve el algoritmo se normaliza de forma que 0 equivale a ninguna similitud y 1 es una
coincidencia exacta.
10/01/2020 www.biocom.com 17
18. SERVICIO DE IDENTIFIACIÓN
DE PERSONAS VS BÚSQUEDA
• Evitan la fragmentación de la información.
• Hay distintas estrategias para
minimizar este problema.
• La comparación de pacientes
proporciona la capacidad de unir a
un individuo único con un conjunto
único de datos en una base de datos
10/01/2020 www.biocom.com 18
19. ASIGNACIÓN DE PESOS
RELATIVOS
1. La Búsqueda de Candidatos se basa en la ponderación de
puntajes o pesos relativos que se asignan a cada
coincidencia entre los diversos campos de un caso
considerado índice (del cual se quiere conocer su presencia
en el dominio) y el resto de los casos del dominio.
2. Así, la fecha de nacimiento, el sexo y el primer apellido
materno llevan pesos relativos altos debido a su poder
discriminatorio, en contraste con los nombres y los apellidos
del propio sujeto.
3. Cada comparación arroja entonces un puntaje total que se
mide contra un valor mínimo de corte prefijado para señalar
al par de casos estudiados como posibles duplicaciones.10/01/2020 19www.biocom.com
20. ASIGNACIÓN DE PESOS
RELATIVOS
10/01/2020 20
Datos Peso
Apellidos 15
Nombres 15
Sexo 10
Tipo de Documento 10
Número de Documento 30
Fecha de Nacimiento 20
100
www.biocom.com
21. TEST DE COMPARACIÓN DE DISTINTOS
ALGORITMOS PARA DETECTAR DIFERENCIAS
https://asecuritysite.com/forensics/simstring
Esta página permite chequear como funcionan distintos algoritmos
10/01/2020 www.biocom.com 21
25. CONCLUSIONES
• Viviana y Vibiana tienen tambien el mismo código Soundex sin
embargo Biviana devuelve B150 y Viviana V150 es decir que
para la primer letra Soundex es un copión de lo que
escribimos, es como que le da otro tratamiento, pero fíjense
que la segunda parte del código es bien distinta.
• Los invito a jugar con estos algoritmos y a considerarlos en
sus aplicaciones, son de gran utilidad para encontrar
diferencias de tipeos y errores y para depurar maestros de
pacientes. Nos permiten encontrar candidatos en las
búsquedas que con los querys convencionales no podríamos
encontrar en las bases de datos.
10/01/2020 www.biocom.com 25
Soundex es tal vez uno de los mas conocidos, se basa en qué tan cerca están dos palabras dependiendo de su pronunciación. Uno de los inconvenientes es que Soundex esta optimizado para el inglés y no funciona muy bien en español.
Levenshtein funciona distinto, mide la diferencia entre dos palabras escritas.
Needleman-Wunsch: El algoritmo Needleman-Wunsch es un algoritmo utilizado en bioinformática para alinear secuencias de proteínas o nucleótidos. Fue una de las primeras aplicaciones de programación dinámica para comparar secuencias biológicas. El algoritmo fue desarrollado por Saul B. Needleman y Christian D. Wunsch y publicado en 1970.
Metaphone: Es un algoritmo fonético, publicado por Lawrence Philips en 1990, para indexar palabras por su pronunciación en inglés. [1] Mejora fundamentalmente el algoritmo Soundex mediante el uso de información sobre variaciones e inconsistencias en la ortografía y pronunciación en inglés para producir una codificación más precisa, que hace un mejor trabajo al combinar palabras y nombres que suenan similares. Al igual que con Soundex, las palabras de sonido similar deberían compartir las mismas claves. Metaphone está disponible como operador integrado en varios sistemas. El autor original más tarde produjo una nueva versión del algoritmo, al que llamó Double Metaphone. Contrariamente al algoritmo original cuya aplicación se limita al inglés solamente, esta versión tiene en cuenta las peculiaridades ortográficas de varios otros idiomas. En 2009, Lawrence Philips lanzó una tercera versión, llamada Metaphone 3, que logra una precisión de aproximadamente el 99% para las palabras en inglés, palabras que no están en inglés familiares para los estadounidenses, y los nombres y apellidos que se encuentran comúnmente en los Estados Unidos, que se han desarrollado de acuerdo con según los estándares de ingeniería modernos contra un arnés de prueba de codificaciones correctas preparadas.
sobre estos se asignas pesos de pruebas o rutinas pirobalísticas para identificar candidatos que pudieran haber sido ingresados con errores de tipeo. Cálculo de Pesos Teniendo en cuenta los candidatos obtenidos en el punto anterior se utiliza el algoritmo Jaro-Winkler para medir el grado de similitud entre dos cadenas. La puntuación que devuelve el algoritmo se normaliza de forma que 0 equivale a ninguna similitud y 1 es una coincidencia exacta.
Uno de los problemas mas serios que enfrenta los sistemas de salud es la fragmentación de la información. Muchas veces no podemos acceder a todos los datos de los pacientes porque su información esta fragmentada asociada a historias clínicas distintas dentro de un maestro de pacientes lo que hace virtualmente imposible juntar toda la información de una misma persona para analizarla correctamente. Es por eso que mantener depurado y auditado un maestro de pacientes es una tarea fundamental. Hay distintas estrategias para minimizar este problema. La comparación de pacientes proporciona la capacidad de unir a un individuo único con un conjunto único de datos en una base de datos o conjunto de datos de atención médica. En los hospitales, esta base de datos se denomina MPI o Enterprise Master Patient Index (EMPI). En el ámbito de la atención médica, los MPI para grandes redes integradas de entrega, organizaciones de información de salud.