Soundex Code

Herkunft / Verwendung: Soundex ist sozusagen ein phonetischer Hashcode. Soundex-Werte haben die Eigenschaft, dass ähnlich ausgesprochene Wörter den gleichen Soundex-Wert erzeugen. Dies kann zur Suche in Datenbanken verwendet werden, wenn man die Aussprache, aber nicht die genaue Schreibweise kennt. Soundex liefert einen String aus 4 Zeichen, beginnend mit einem Buchstaben und folgend von 3 Ziffern zurück und ist für die englische Sprache bestimmt.

Praktisches Beispiel: Wenn man nur die Aussprache eines Namens kennt, etwa "Meier" und nicht genau weiß, ob dieser Maier, Meier, Mayer, Meyer oder auch Mayr, dann kann man nach dem Soundex in der Datenbank suchen und wird unter "M600" alle Schreibvarianten wiederfinden.

Entwickelt wurde Soundex von Robert Russell und Margaret Odell für eine Volkszählung in den USA. Sie wurde 1918 patentiert.

Schon früh wurde in der Datenbanksprache für Oracle (PL/SQL) ein Befehl Soundex integriert. Dies hat sicher zur weiteren Verbreitung dieses Algorithmus geführt.

Das Verfahren ist für die englische Sprache zugeschnitten und ist nur bedingt für die deutsche geeignet. Zum Beispiel wird das "Y" ignoriert, weil im englischen meist als Vokal benutzt wird. Das deutsche "J" gleicht eher dem englischen "Y". Außerdem kennt die deutsche Sprache mehrbuchstabige Laute wie "ch" und "sch".

Es gibt ein für die deutsche Sprache besser geeignete Kodierung, die sogenannte Koelner Phonetik.

Der hier verwendete Soundex Algorithmus ist leicht an die deutsche Sprache angepasst, denn er ordnet auch ein "ß" als "s" ein.

Zu bemerken wäre auch, dass ein Soundex-Code immer 4 Stellen lang ist. Damit ist er für längere Wörter wenig aussagekräftig.

Spezifikation des Algorithmus

Der erste Buchstabe des Ursprungwortes wird in Großbuchstaben übernommen. Danach wird jeder Buchstabe in eine der folgenden 6 Kategorien eingeordnet: 1 B, F, P, V 2 C, G, J, K, Q, S, X, Z 3 D, T 4 L 5 M, N 6 R Vokale und andere, nicht aufgeführte Buchstaben werden ignoriert und gehen nicht in den Code ein.

Aufeinanderfolgende, gleiche Ziffern im Code werden ausgelassen, Doppelbuchstaben führen also nur zu einmalige Nennung einer Ziffer.

Hat der Soundex-Code 4 Stellen erreicht, wird die Kodierung abgebrochen und das Ergebnis steht fest. Ist das Ergebnis weniger als 4 Stellen lang, wird mit Nullen aufgefüllt.

Beispiele

Klartext:Null   Eins   Zwei  Drei   Vier  Fünf  Sechs Sieben Acht Neun Zehn Elf  Zwölf
Kodiert:N400 E520 Z000 D600 V600 F510 S200 S150 A230 N500 Z500 E410 Z410


Klartext:Erika Mustermann
Kodiert:E620 M236
Dekodierung von E620 M236: Soundex gibt nur den ersten Buchstaben und die drei nachfolgenden Konsonanten wieder. Doppelkonsonanten werden gekürzt. Jede der nachfolgenden Zeilen steht für einen möglichen Buchstaben. Zwischen den Zeilen können sich beliebig viele der folgende Buchstaben befinden: AEIOU HWY ÄÖÜ, denn diese wurden bei der Kodierung ausgelassen. e r (i) cgjkqsxzß ... -------- m (u) cgjkqsxzß dt (e) r ... --------

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (Decoder / Encoder / Solver-Tool)