Algorithme phonétique de Cologne

algorithme phonétique qui assigne aux mots une séquence de chiffres, le code phonétique

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 modifier

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 modifier

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 :

  1. codage lettre par lettre en partant du début du mot selon la table ;
  2. suppression des chiffres voisins dédoublés ;
  3. suppression des 0 sauf en tête du code.

Exemple modifier

Le toponyme Müller-Lüdenscheidt sera codé de la façon suivante :

  1. Codage des lettres: 60550750206880022
  2. Suppression des chiffres voisins dédoublés : 6050750206802
  3. 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 modifier

Bibliographie modifier

  • (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 modifier