Similarité auditive

March 14th, 2008

Dans un monde où on utilise de plus en plus d’outils de recherche, dans différentes langues, il est important de pouvoir trouver ce que l’on cherche même si on n’utilise pas exactement la bonne orthographe du mot que l’on cherche. Face à ce genre de problèmes, on a vu l’apparition de certains algorithmes, comme le Soundex, qui commence à dater et est loin d’être parfait. C’est pour ça que le Metaphone a été créé, sauf qu’il ne comprend que l’anglais (tout comme le Soundex d’ailleurs), alors l’algorithme a évolué et donné naissance au Double Metaphone qui lui prend en compte les différents langages (principalement l’anglais, les langues slaves, germaniques, celtiques, le grec, le français, l’italien, l’espagnol, ou le chinois) de manière intelligente et qui permet de faire des rapprochements entre des chaines.

Comment ça marche ? C’est relativement simple (dans l’idée, par ce que en pratique c’est loin d’être le cas, d’ailleurs je crois que Lawrence Philips, l’auteur du double metaphone, mérite que la communauté du web se cotise pour lui rembourser ses frais en aspirine) : à partir des combinaisons de lettres et de leur fréquence (si je vous écris “verwandelt” vous vous doutez bien que c’est germanique) en peut savoir le genre de prononciation que ça a, ensuite il ne reste qu’à appliquer des règles sur la prononciation (”ba” se prononce presque comme “bha”), ce qui permet de créer une clef (en fait 2 dans le cas du double metaphone). Deux mots ayant la même prononciation auront la même clef.

On peut trouver diverses implantations de cet algorithme dans différents langages, dont celle ci en PHP.

Entry Filed under: Programmation, PHP

1 Comment Add your own

  • 1. binome  |  May 29th, 2008 at 10:45 am

    c’est pas “en peut” mais “on peut”.

Leave a Comment

hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

September 2008
M T W T F S S
« Aug    
1234567
891011121314
15161718192021
22232425262728
2930  

Most Recent Posts