Algorithme phonétique de Cologne
L’algorithme phonétique de Cologne (ou méthode phonétique de Cologne) permet d'assigner aux mots un code numérique reflétant leur sonorité. Le but de cet algorithme est que les mots correspondant à un même son soient adressés par un code unique, afin d'automatiser la reconnaissance de mot par similitude de sons : par exemple, dans une liste de noms, de trouver toutes les graphies correspondant au nom « Lefèvre », comme « Lefebvre », « Lefèbvre » ou « Le Faivre ». Cet algorithme, inventé en 1969 par un spécialiste de la lutte contre la contrefaçon, Hans-Joachim Postel (1925 † 2013), est naturellement mieux adapté à la langue allemande que son prédécesseur des années 1920, le Soundex de Russell.
Principes
L’algorithme phonétique de Cologne assigne à chaque lettre d'un mot, un chiffre compris entre 0 et 8, mais sans répéter le chiffre en cas de consonnes doubles. En outre, l'initiale des mots (l'attaque, en allemand Anlaut) fait l'objet de règles particulières, de façon à assigner un code unique aux mêmes syllabes. Les fricatives V et F sont codées par le chiffre 3. Le code phonétique de Vikipedia donne 3412
. Contrairement à l'algorithme Soundex, la longueur du code d'un mot n'est pas limitée.
Encodage des lettres
Lettre | Contexte | Code |
---|---|---|
A, E, I, J, O, U, Y | 0 | |
H | – | |
B | 1 | |
P | sauf devant un H | |
D, T | sauf devant C, S, Z | 2 |
F, V, W | 3 | |
P | uniquement devant un H | |
G, K, Q | 4 | |
C | à l'initiale, précédant A, H, K, L, O, Q, R, U ou X | |
devant A, H, K, O, Q, U, X exclusivement | ||
X | sauf devant C, K, Q | 48 |
L | 5 | |
M, N | 6 | |
R | 7 | |
S, Z | 8 | |
C | après S ou Z | |
à l'initiale, sauf devant A, H, K, L, O, Q, R, U ou X | ||
jamais devant un A, H, K, O, Q, U ou X | ||
D, T | avant un C, S ou Z | |
X | après C, K ou Q |
Pour que la règle « SC » ait préséance sur la règle « CH », il faudrait compléter la ligne 9 de ce tableau de la précision « sauf derrière S ou Z. » L'auteur ne l'a pas indiqué, mais il en fait bien usage dans l'un des exemples qu'il donne : pour coder le nom du premier ministre soviétique Brejnev (Breschnew en allemand), il donne 17863.
Les lettres centrales d'un mot sont codées de la même façon en supprimant tous les autres signes d'écriture (par ex. les traits d'union). Pour les voyelles infléchies Ä, Ö, Ü il est convenu de les coder comme des voyelles (code 0) ; quant au groupe sz, noté ß en allemand, il est codé comme un S (Code 8). En allemand, la lettre j est une consonne spirante palatale voisée (yod), c'est-à-dire le son mouillé du ill dans « Castille », du y dans « voyez » et du i dans « Batelier ». Pour rendre le son du j français, il faut l'assimiler au [ʃ] phonétique et donc, suivant la table, le coder par un 8, comme dans l'exemple « Brejnev. »
La conversion d'un mot se fait donc en trois étapes :
- codage lettre par lettre en partant du début du mot selon la table ;
- suppression des chiffres voisins dédoublés ;
- suppression des 0 sauf en tête du code.
Exemple
Le toponyme Müller-Lüdenscheidt sera codé de la façon suivante :
- Codage des lettres: 60550750206880022
- Suppression des chiffres voisins dédoublés : 6050750206802
- Suppression des 0 : 65752682
On notera en passant que le nom composé Müller-Lüdenscheidt devient un code unique par la règle d'élision du trait d'union. Si maintenant on se proposait de coder Heinz Classen par les règles ordinaires en ignorant qu'il y a là deux mots, on obtiendrait 068586, car le Z et le C cnsécutifs étant codés chacun par un 8, l'un des deux serait supprimé ; alors que si l'on tient compte du fait qu'il s'agit de deux mots, C est codé par un 4 et donc sera conservé, d'où le codage (correct) 068 4586.
Voir également
- (de) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en allemand intitulé « Kölner Phonetik » (voir la liste des auteurs).
- Soundex
- Metaphone
- Prononciation de l'allemand
Bibliographie
- (de) Hans Joachim Postel, « Die Kölner Phonetik. Ein Verfahren zur Identifizierung von Personennamen auf der Grundlage der Gestaltanalyse », IBM-Nachrichten, 19e année, , p. 925–931.
Ressources en ligne
- Martin Wilz, « Aspekte der Kodierung phonetischer Ähnlichkeiten in deutschen Eigennamen » (version du 1 juillet 2007 sur Internet Archive) (PDF; 502 kB). maîtrise de Philosophie de l'université de Cologne (2005) ; contient une implémentation en langage Perl.
- Maroš Kollár, implémentation en langage Perl de plusieurs systèmes de codage phonétique pour la bibliothèque logicielle CPAN (Comprehensive Perl Archive Network)
- Andy Theiler, implémentation en PHP et Oracle PL/SQL
- Steffen Halstrick, Implémentation en Kotlin et Dart de l'algorithme de Cologne
- Nicolas Zimmer, Implémentation en PHP-de l'algorthme de Cologne en commentaire du mot soundex dans le manuel de PHP (2008).
- Falk Meyer, Java-Implementierung der Kölner Phonetik für Apache Commons Codec