Kölner Phonetik
Die Kölner Phonetik (auch Kölner Verfahren) ist ein phonetischer Algorithmus, der Wörtern nach ihrem Sprachklang eine Ziffernfolge zuordnet, den phonetischen Code. Ziel dieses Verfahrens ist es, gleich klingenden Wörtern denselben Code zuzuordnen, um bei Suchfunktionen eine Ähnlichkeitssuche zu implementieren. Damit ist es beispielsweise möglich, in einer Namensliste Einträge wie „Meier“ auch unter anderen Schreibweisen, wie „Maier“, „Mayer“ oder „Mayr“, zu finden. Die Kölner Phonetik ist, im Vergleich zum bekannteren Russell-Soundex-Verfahren, besser auf die deutsche Sprache abgestimmt. Sie wurde 1969 von Hans Joachim Postel veröffentlicht.
Grundregeln
Die Kölner Phonetik bildet jeden Buchstaben eines Wortes auf eine Ziffer zwischen „0“ und „8“ ab, wobei für die Auswahl der jeweiligen Ziffer maximal ein benachbarter Buchstabe als Kontext benutzt wird. Einige Regeln gelten speziell für den Wortanfang (Anlaut). Auf diese Weise wird ähnlichen Lauten derselbe Code zugeordnet. Die beiden Buchstaben „W“ und „V“ beispielsweise werden mit der Ziffer „3“ codiert. Der phonetische Code für „Wikipedia“ lautet 3412
. Im Gegensatz zum Soundex-Code ist die Länge des phonetischen Codes nach der Kölner Phonetik nicht beschränkt.
Buchstabencodes
Buchstabe | Kontext | Code |
---|---|---|
A, E, I, J, O, U, Y | 0 | |
H | – | |
B | 1 | |
P | nicht vor H | |
D, T | nicht vor C, S, Z | 2 |
F, V, W | 3 | |
P | vor H | |
G, K, Q | 4 | |
C | im Anlaut vor A, H, K, L, O, Q, R, U, X | |
vor A, H, K, O, Q, U, X außer nach S, Z | ||
X | nicht nach C, K, Q | 48 |
L | 5 | |
M, N | 6 | |
R | 7 | |
S, Z | 8 | |
C | nach S, Z | |
im Anlaut außer vor A, H, K, L, O, Q, R, U, X | ||
nicht vor A, H, K, O, Q, U, X | ||
D, T | vor C, S, Z | |
X | nach C, K, Q |
Dass für den Buchstaben „C“ die Regel „SC“ Vorrang vor der Regel „CH“ hat, wurde durch den Zusatz „außer nach S, Z“ in Zeile 10 der Tabelle berücksichtigt. Dies wird in der Originalveröffentlichung zwar nicht explizit erwähnt, kann aber aus den dort angeführten Beispielen geschlossen werden (z. B. für „Breschnew“ wird als Code „17863“ angegeben).
Kleinbuchstaben werden analog kodiert, alle sonstigen Zeichen (z. B. Bindestriche) ignoriert. Für die in der Umwandlungstabelle nicht berücksichtigten Umlaute Ä, Ö, Ü sowie das ß bietet es sich an, diese bei den Vokalen (Code „0“) bzw. der Gruppe S, Z (Code „8“) einzuordnen.
Die Umwandlung eines Wortes erfolgt in drei Schritten:
- Buchstabenweise Kodierung von links nach rechts entsprechend der Umwandlungstabelle.
- Entfernen aller mehrfach nebeneinander vorkommenden Ziffern.
- Entfernen aller Codes „0“ außer am Anfang.
Beispiel
Der Name Müller-Lüdenscheidt wird folgendermaßen kodiert:
- Buchstabenweise Kodierung: 60550750206880022
- Entfernen aller mehrfach nebeneinander vorkommenden Ziffern: 6050750206802
- Entfernen aller Codes „0“: 65752682
Zu beachten ist hierbei, dass der Name Müller-Lüdenscheidt durch den Bindestrich als ein Wort behandelt wird. Wird Heinz Classen mit der üblichen Implementierung kodiert und dabei ignoriert, dass es sich um 2 Wörter handelt, dann entsteht 068586, wobei Z zu 8 und C ebenfalls zu 8 wird und die zweite 8 entfällt. Wird es als zwei Wörter behandelt, dann wird C zu 4 und bleibt erhalten, also erhält man die richtige Codierung 068 4586.
Literatur
- Hans Joachim Postel: Die Kölner Phonetik. Ein Verfahren zur Identifizierung von Personennamen auf der Grundlage der Gestaltanalyse. In: IBM-Nachrichten, 19. Jahrgang, 1969, S. 925–931.
Weblinks
- Martin Wilz: Aspekte der Kodierung phonetischer Ähnlichkeiten in deutschen Eigennamen (Memento vom 1. Juli 2007 im Internet Archive) (PDF; 502 kB). Magisterarbeit an der Philosophischen Fakultät der Universität zu Köln, 2005; enthält eine Implementierung in der Programmiersprache Perl.
- Maroš Kollár: Perl-Implementierung der Kölner Phonetik und ähnlicher Verfahren als freie Software im CPAN (Comprehensive Perl Archive Network)
- Andy Theiler: PHP und Oracle PL/SQL-Implementierung der Kölner Phonetik
- Steffen Halstrick: Kotlin und Dart Implementierung der Kölner Phonetik
- Nicolas Zimmer: PHP-Implementation der Kölner Phonetik in einem Kommentar zum Eintrag soundex im PHP-Manual, 2008.
- Falk Meyer: Java-Implementierung der Kölner Phonetik für Apache Commons Codec
- Stefan Daschek: Cologne phonetics algorithm in Ruby.
- Ruben Philipp: Common Lisp Implementierung des Kölner Phonetik-Algorithmus.