Soundex

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 1 de marzo de 2021; las comprobaciones requieren 2 ediciones .

Soundex  : uno de los algoritmos para comparar cuerdas por su sonido; establece el mismo índice para las cadenas que suenan de forma similar en inglés .

Desarrollado por Robert C. Russel y Margaret King Odell y patentado en 1918 y 1922 [1] [2] , es históricamente el primer algoritmo fonético . Se hizo popular en la década de 1960 después de que se le dedicaran varios artículos en Communications of the ACM y Journal of the ACM ; se hizo aún más famoso después de aparecer en El arte de la programación [3] de Knuth . Se ha utilizado como característica estándar en muchos RDBMS desde la década de 1980 .

Centrado inicialmente en la fonética del inglés americano, mediante modificaciones se puede aplicar a otras variantes e idiomas, pero en algunos casos se requieren cambios significativos (como, por ejemplo, en el algoritmo Deutsch-Mokotoff , que admite nombres propios en Idiomas yiddish y eslavo ). Posteriormente, también aparecieron alternativas que se centraban más en las palabras ordinarias del inglés que en los nombres propios (como Metaphone , Caverphone ).

Pasos del algoritmo

  1. Recuerda la primera letra de la palabra.
  2. Se eliminan todas las apariciones de h y w (excepto la primera letra de la palabra).
  3. Las consonantes se reemplazan por números del 1 al 6, y las letras de sonido similar corresponden a los mismos números:
    • segundo, f, pag, v → 1
    • c, gramo, j, k, q, s, x, z → 2
    • re, t → 3
    • l → 4
    • metro, norte → 5
    • r → 6
  4. Cualquier secuencia de dígitos idénticos se reduce a uno de esos dígitos.
  5. Todas las a , e , i , o , u , y se eliminan (excepto la primera letra de la palabra).
  6. Reemplaza el primer carácter con la letra memorizada en el paso 1, convirtiéndola en mayúscula.
  7. La cadena resultante se trunca a los primeros cuatro caracteres. Si la cadena es menor que la longitud requerida, los caracteres que faltan se reemplazan con un 0.

Ejemplos:

Notas

  1. Patente de EE. UU. 1.261.167
  2. Patente de EE. UU. 1.435.663
  3. Donald Knuth . Parte 6. Buscar // El arte de la programación = El arte de la programación informática. - 2012. - V. 3. Clasificación y búsqueda. - art. 249.