word_key() (Funktion)

Die Funktion word_key() codiert ein Wort phonetisch gemäß seiner Aussprache in Englisch, indem der Algorithmus Double Metaphone oder eine der drei unterstützten Varianten des Soundex-Algorithmus verwendet wird.

Wörter mit gleicher Aussprache, aber unterschiedlicher Schreibweise werden auf dieselbe Weise codiert. Je nach dem von Ihnen ausgewählten Algorithmus können ähnlich klingende Wörter auch auf dieselbe Weise codiert werden.

Sie können später mit der Funktion word_keys_diff() einen 'unscharfen' Vergleich der phonetisch codierten Wörter ausführen. Das Ziel dabei ist, dass Sie Namen auf Grundlage ihrer Aussprache abgleichen können und dass die Zahl der nicht erkannten Namen vermindert wird, die sich möglicherweise aus Varianten bei der Schreibweise ergibt. Sie können diesen Typ des unscharfen Vergleichs beispielsweise verwenden, um doppelte Datensätze zu finden, die sich aus Rechtschreibfehlern ergeben haben. Eine andere Verwendung besteht darin, in einer genealogischen Datenbank Namen von Vorfahren zu finden, wenn deren Schreibweise sich im Zeitverlauf leicht geändert hat.

Die phonetischen Abgleichfunktionen führen keine Vergleiche aus, bei denen die Groß-/Kleinschreibung beachtet werden muss: Die phonetischen Darstellungen zweier Zeichenfolgen, die dieselbe Schreibweise, aber unterschiedliche Groß-/Kleinschreibung haben, sind gleich. Die Funktionen ignorieren alle Zeichen, die nicht zum ASCII-Subset gehören.

Syntax

Die Funktion word_key() hat folgende Syntax:
int4 = word_key(varchar input [, int algorithm]);

Der Wert " input gibt das varchar-Wort an, das eine phonetische Kodierung erhalten soll.

Der Wert " algorithm wird durch einen ganzzahligen Code angegeben, der standardmäßig 3 beträgt. Die verfügbaren Algorithmen sind in der folgenden Tabelle aufgeführt.
Tabelle 1. Für die phonetische Codierung unterstützte Algorithmen
Code erstellen Ihren Namen Beschreibung
0 Soundex-Miracode Der ursprüngliche Soundex-Algorithmus, der in der US-Befragung (Census) 1880-1930 zum Codieren von Familienamen verwendet wurde. Alle Familiennamen werden als Zeichenfolgen mit vier Zeichen codiert. Das erste Zeichen stellt den ersten Buchstaben des Familiennamens einer Person dar und bei dem jeweils zweiten, dritten und vierten Zeichen handelt es sich um ganzzahlige Codes für die verbliebenen Konsonanten im Namen. Vokale werden ignoriert, doppelte Codierungen werden in einen einzelnen Wert komprimiert und falls erforderlich wird rechts ein Auffüllen mit Nullen ausgeführt.
1 Soundex-Simplified Eine aktualisierte Form des ursprünglichen Soundex-Algorithmus. Der Algorithmus Soundex-Simplified ist identisch mit dem Algorithmus Soundex-Miracode, außer dass der Algorithmus Soundex-Simplified nicht H oder W codiert.

Die Verwendung der in den Netezza Performance Server integrierten Funktion " nysiis() entspricht in etwa der Verwendung der Funktion " word_key() mit dem Soundex-Simplified-Algorithmus.

2. Soundex-SQLServer Die Version des Soundex-Algorithmus, die in Microsoft SQL Server implementiert ist. Er codiert nicht H oder W und die Zusammenfassung nach Ähnlichkeiten beginnt nach dem ersten Zeichen.
3 Double Metaphone Ein Algorithmus, der die meisten englischen Wörter (nicht nur Namen) codiert. Der Algorithmus quantifiziert die Regeln für die englische Aussprache besser und erkennt auch Subsets nicht lateinischer Zeichen. Daher stellt dieser Algorithmus gegenüber Soundex die bessere Wahl dar; Double Metaphone ist der Algorithmus, den die meisten Rechtschreibprüfungen verwenden. Während Soundex alle Namen mit einem Schlüssel derselben Länge codiert, gibt Double Metaphone Codierungen variabler Länge aus, die den Klang eines Worts präziser darstellen. Der Algorithmus handhabt auch den Fall, dass ein Wort unterschiedliche Aussprachen besitzt, dadurch, dass eine primäre Codierung und eine sekundäre Codierung zurückgegeben wird.

Die Verwendung der in Netezza Performance Server integrierten Funktion " dbl_mp() entspricht der Verwendung der Funktion " word_key() mit dem Double Metaphone-Algorithmus.

Rückgabe

Die Funktion gibt den Code der Funktion word_key() eines Worts als Ganzzahl zurück. Sie können diese Codes mithilfe der Funktion word_keys_diff() vergleichen.

Beispiel

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