Función word_key()

La función word_key() codifica fonéticamente una palabra, según su pronunciación en inglés, utilizando el algoritmo Double Metaphone o una de las tres variedades admitidas del algoritmo Soundex.

Las palabras con la misma pronunciación pero distinta ortografía se codifican del mismo modo. En función del algoritmo seleccionado, las palabras que suenen parecido se pueden codificar de la misma forma.

Posteriormente puede utilizar la función word_keys_diff() para realizar una comparación aproximada de las palabras codificadas desde el punto de vista fonético. El objetivo es permitir buscar coincidencias de nombres en función de su pronunciación y reducir los errores de coincidencias no encontradas debido a variaciones de escritura. Por ejemplo, se puede utilizar este tipo de comparación aproximada para encontrar registros duplicados que son el resultado de errores de ortografía. Otro uso es para encontrar los nombres de antecesores en una base de datos genealógica cuando la ortografía cambia ligeramente a lo largo del tiempo.

Las funciones de coincidencia fonética no son comparaciones que distingan entre mayúsculas y minúsculas; las representaciones fonéticas son las mismas para dos cadenas que tengan la misma ortografía, pero se diferencien en mayúsculas y minúsculas. Las funciones ignoran cualquier carácter fuera del subconjunto ASCII.

Sintaxis

La función word_key() tiene la siguiente sintaxis:
int4 = word_key(varchar input [, int algorithm]);

El valor ' input ' especifica la palabra varchar que debe recibir una codificación fonética.

El valor " algorithm " se especifica mediante un código entero, que por defecto es 3. Los algoritmos disponibles se enumeran en la tabla siguiente.
Tabla 1. Algoritmos compatibles con la codificación fonética.
Código Nombre Descripción
0 Soundex-Miracode El algoritmo Soundex original se utilizó para codificar los apellidos en el censo de 1880 - 1930 de Estados Unidos. Todos los apellidos se codifican como cadenas de cuatro caracteres. El primer carácter representa la primera letra del apellido de una persona y los caracteres dos, tres y cuatro son codificaciones de entero para las demás consonantes del nombre. Las vocales se ignoran, las codificaciones duplicadas se contraen a un único valor y se rellena con ceros a la derecha si es necesario.
1 Soundex-Simplificado Una forma actualizada del algoritmo Soundex original. Es idéntico al algoritmo Miracode salvo que no codifica la H o la W.

El uso de la función incorporada " nysiis() de Netezza Performance Server equivale aproximadamente al uso de la función " word_key() " con el algoritmo Soundex-Simplified.

2 Soundex-SQLServer La versión del algoritmo Soundex que se implementa en Microsoft SQL Server. No codifica la H ni la W, y las agrupaciones similares comienzan después del primer carácter.
3 Double Metaphone Un algoritmo que codifica la mayor parte de las palabras inglesas, no solo los nombres. Este algoritmo cuantifica mejor las reglas de la pronunciación inglés y también reconoce un subconjunto de caracteres no Latin. Por lo tanto, este algoritmo es una opción mucho mejor que Soundex; Double Metaphone lo utilizan la mayoría de los correctores ortográficos. Mientras que Soundex codifica todos los nombres con una clave de la misma longitud, Double Metaphone produce codificaciones de longitud variables que representan de forma más precisa los sonidos de la palabra. El algoritmo también controla los casos en los que una palabra tiene pronunciaciones distintas, devolviendo para ello una codificación primaria y otra secundaria.

El uso de la función incorporada ' dbl_mp() Netezza Performance Server es equivalente al uso de la función ' word_key() ' con el algoritmo Double Metaphone.

Devuelve

La función devuelve el código de función word_key() de una palabra como un entero. Estos códigos se pueden comparar utilizando la función word_keys_diff().

Ejemplo

select word_key('persistent',1);
 WORD_KEY
----------
    67106
(1 row)