Algoritmo fonético
El Código Fonético del Sistema de Identificación e Inteligencia del Estado de Nueva York , comúnmente conocido como NYSIIS, es un algoritmo fonético ideado en 1970 como parte del Sistema de Identificación e Inteligencia del Estado de Nueva York (ahora parte de la División de Servicios de Justicia Penal del Estado de Nueva York ). Presenta un aumento de precisión del 2,7 % con respecto al algoritmo Soundex tradicional . [1]
Procedimiento
El algoritmo, como se describe en Técnicas de búsqueda de nombres , [2] es:
- Si las primeras letras del nombre son
- 'MAC' entonces cambia estas letras a 'MCC'
- 'KN' entonces cambia estas letras a 'NN'
- 'K' entonces cambia esta letra a 'C'
- 'PH' entonces cambia estas letras a 'FF'
- 'PF' entonces cambia estas letras a 'FF'
- 'SCH' entonces cambia estas letras a 'SSS'
- Si las últimas letras del nombre son [3]
- 'EE' entonces cambia estas letras a 'Y␢'
- 'IE' entonces cambia estas letras a 'Y␢'
- 'DT' o 'RT' o 'RD' o 'NT' o 'ND' y luego cambie estas letras a 'D␢'
- El primer carácter del código NYSIIS es el primer carácter del nombre.
- En las siguientes reglas, se realiza un escaneo de los caracteres del nombre. Esto se describe en términos de un bucle de programa. Se utiliza un puntero para señalar la posición actual en consideración en el nombre. El paso 4 es configurar este puntero para que apunte al segundo carácter del nombre.
- Teniendo en cuenta la posición del puntero, solo se puede ejecutar una de las siguientes instrucciones.
- Si está en blanco, vaya a la regla 7.
- Si la posición actual es una vocal (AEIOU), entonces si es igual a 'EV' cambia a 'AF'; de lo contrario, cambia la posición actual a 'A'.
- Si la posición actual es la letra
- 'Q' entonces cambia la letra a 'G'
- 'Z' entonces cambia la letra a 'S'
- 'M' entonces cambia la letra a 'N'
- Si la posición actual es la letra 'K', entonces si la siguiente letra es 'N', reemplace la posición actual por 'N'; de lo contrario, reemplace la posición actual por 'C'
- Si la posición actual apunta a la cadena de letras
- 'SCH' luego reemplaza la cadena con 'SSS'
- 'PH' luego reemplaza la cadena con 'FF'
- Si la posición actual es la letra 'H' y la letra anterior o siguiente no es una vocal (AEIOU), reemplace la posición actual con la letra anterior.
- Si la posición actual es la letra 'W' y la letra anterior es una vocal, reemplace la posición actual con la posición anterior.
- Si ninguna de estas reglas se aplica, conserve el valor de la letra de la posición actual.
- Si la letra de la posición actual es igual a la última letra colocada en el código, entonces coloque el puntero para que apunte a la siguiente letra y vaya al paso 5.
El siguiente carácter del código NYSIIS es la letra de la posición actual.
Incremente el puntero para que apunte a la siguiente letra.
Vaya al paso 5. - Si el último carácter del código NYSIIS es la letra "S", elimínelo.
- Si los dos últimos caracteres del código NYSIIS son las letras 'AY', reemplácelas con el carácter único 'Y'.
- Si el último carácter del código NYSIIS es la letra "A", elimine esta letra.
Referencias
- ^ Rajkovic, P.; Jankovic, D. (2007), "Adaptación y aplicación del algoritmo Soundex de Daitch-Mokotoff en nombres serbios" (PDF) , XVII Conferencia sobre Matemáticas Aplicadas , Novi Sad, Serbia, archivado desde el original (PDF) el 27 de agosto de 2011
{{citation}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace ) - ^ Taft, RL (1970), "Técnicas de búsqueda de nombres", Sistema de identificación e inteligencia del estado de Nueva York , Albany, Nueva York
{{citation}}
: CS1 maint: location missing publisher (link) - ^ "Carácter Unicode 'SÍMBOLO EN BLANCO' (U+2422)".
Enlaces externos
- Informe del USDA con el procedimiento NYSIIS original y una versión modificada
- Entrada del Diccionario de algoritmos y estructuras de datos del NIST, que incluye indicadores de varias implementaciones
- Codificador de muestra, que utiliza una variante del algoritmo
- Implementación de Ruby
- Implementación de C#
- Implementación de PHP