Algorithmes de correspondance phonétique
Une tentative de correspondance de noms à l'aide d'algorithmes de ML
Supposons que vous construisiez un projet qui vous oblige à trier les mots/noms en fonction de leur prononciation. Vous pouvez utiliser la correspondance de chaînes, mais voulez-vous que tout le monde s'appelle Aakash ? Aucun droit. C'est là que les algorithmes phonétiques entrent en jeu. Les algorithmes phonétiques sont un moyen de trier les mots en fonction de leur prononciation. Ils sont de différents types et sont utilisés à des fins différentes. Cependant, ils sont considérés comme fonctionnant mieux dans le cas de noms de personnes ou de lieux car c'est là que le problème de prononciation apparaît le plus.
Correspondance de chaînes
La correspondance de chaînes ne relève pas de la catégorie de l'algorithme phonétique, mais il est utile de le mentionner ici pour avoir une idée de ce que nous visons à faire ici. Dans la correspondance de chaînes, on nous donne un texte (le mot à rechercher) également noté T et un motif (le terme que nous cherchons à rechercher) également noté T. Basé sur la correspondance ; l'algorithme renverra un score compris entre 0 et 1. 1 étant le plus élevé et 0 le plus bas. Il existe de nombreuses façons de le faire, comme Naive String Matching, KMP, etc., mais nous n'irons pas trop loin.
Soundex
Cet algorithme est basé sur la prononciation d'un mot plutôt que sur son orthographe, entrant ainsi dans la catégorie des algorithmes phonétiques. Soundex crée un code à quatre caractères basé sur leur prononciation. Les codes peuvent ensuite être comparés pour déterminer si les mots se ressemblent. Les fautes d'orthographe mineures et les mots à consonance similaire (orthographe différente) peuvent être triés plus efficacement. Il est si courant que les produits SQL aient généralement des algorithmes Soundex dans leurs fonctions de bibliothèque.
Lorsque vous recherchez un nom de famille dans une base de données, dites « Goyal », « Goel » et « Goyal » seront trouvés car ils se ressemblent et auront donc le même code Soundex.
Métaphone
Metaphone est une version raffinée de Soundex. Metaphone a une gamme plus large de règles de prononciation et des longueurs de clés variables par rapport à la clé de longueur fixe de Soundex.
Double Metaphone améliore encore cela en renvoyant une clé primaire et une clé secondaire . En plus de l'anglais, il tente d'englober les prononciations d'autres origines comme le grec, le français, l'italien, l'espagnol et le chinois.
Il existe également une troisième version, Metaphone 3, qui renvoie une précision de 99% pour les mots anglais.
NYSIIS (Système d'information et de renseignement de l'État de New York)
NYSIIS est basé sur la même idée que Soundex et Metaphone, sauf qu'il donne des résultats plus précis car il renvoie moins de résultats sous le même code. La correspondance se produit en attribuant des indices spécifiques à des sons particuliers.
Caverphone
Cet algorithme a été construit parce que Soundex et Metaphone se sont avérés inadaptés à l'ensemble de données Caversham (un ensemble de données issu de recherches menées en Nouvelle-Zélande). Un modèle d'encodage phonétique personnalisé a été développé, conçu de manière similaire à Metaphone dans la zone d'étude (Nouvelle-Zélande).
Fonctions de similarité
Distance de Levenshtein
Étant donné deux mots, nous pouvons nous demander à quel point les deux mots sont similaires. Nous pouvons également poser cette question à deux phrases ou séquences de chaînes. Pour quantifier la similitude, nous avons besoin d'une mesure. La distance de Levenshtein est une telle mesure. En utilisant des opérations simples (telles que l'insertion, la suppression et la substitution), nous pouvons déterminer comment transformer un mot ou une séquence en l'autre mot ou séquence. Il pourrait y avoir plusieurs façons d'y parvenir. La distance de Levenshtein est le nombre minimum d'opérations requises pour égaler les deux entrées. Plus le nombre est faible, plus les deux entrées comparées sont similaires.
Jaro Winkler Distance
Jaro-Winkler calcule la distance (une mesure de similarité) entre les chaînes. L'échelle de mesure est de 0,0 à 1,0, où 0,0 est le moins probable et 1,0 est une correspondance positive.
Similitude du cosinus
La similarité cosinus mesure le cosinus de l'angle entre deux vecteurs multidimensionnels. Plus l'angle est petit, plus la similarité du cosinus est élevée.
CONCLUSION
Lorsqu'ils sont combinés avec des fonctions de similarité, les algorithmes phonétiques peuvent s'avérer extrêmement utiles pour indiquer le degré de similarité entre deux mots/noms, ce qui peut être utilisé dans les cas de cybersécurité ou de bases de données en général.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































