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
int4 = word_key(varchar input [, int algorithm]);
El valor ' input ' especifica la palabra varchar que debe recibir una codificación fonética.
algorithm " se especifica mediante un código entero, que por defecto es 3. Los algoritmos disponibles se enumeran en la tabla siguiente.| 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)