Fonction SOUNDEX( )

Renvoie le code soundex pour la chaîne indiquée. Ce dernier peut être utilisé pour effectuer des comparaisons phonétiques avec d'autres chaînes.

Syntaxe

SOUNDEX(chaîne_de_caractères)

Paramètres

Nom Type Description
nom caractère Expression de caractère à évaluer.

Sortie

Caractère. Renvoie un code soundex à quatre caractères.

Exemples

Exemples basiques

Mots ayant la même prononciation mais une orthographe différente

Les deux exemples ci-dessous renvoient le même code soundex car ces deux mots se prononcent pareil même si leur orthographe est différente.

Renvoie F634 :

SOUNDEX("Fairdale")

Renvoie F634 :

SOUNDEX("Faredale")

Mots ayant une prononciation similaire

Les deux exemples ci-dessous renvoient des codes soundex différents, mais très proches, car les deux mots ont une prononciation similaire.

Renvoie J525 :

SOUNDEX("Jonson")

Renvoie J523 :

SOUNDEX("Jonston")

Mots ayant une prononciation différente

Les deux exemples ci-dessous renvoient des codes soundex assez différents, car les deux mots ont une prononciation différente.

Renvoie S530 :

SOUNDEX("Smith")

Renvoie M235 :

SOUNDEX("MacDonald")

Entrée de champ

Renvoie le code soundex de chaque valeur du champ Nom :

SOUNDEX(Nom)

Exemples avancés

Identifier les codes soundex correspondants

Créez le champ calculé Code_soundex pour afficher le code soundex de chaque valeur dans le champ Nom :

DEFINE FIELD Code_soundex COMPUTED SOUNDEX(Nom)

Ajoutez le champ calculé Code_soundex à la vue, puis vérifiez la présence de doublons dans ce même champ en effectuant une recherche de doublons afin d'identifier toute correspondance de codes soundex :

DUPLICATES ON Code_soundex OTHER Nom PRESORT OPEN TO "Doublons_possibles.fil"

Si vous trouvez des correspondances de codes soundex, cela indique que les valeurs de caractère associées du champ Nom sont peut-être des doublons.

Remarques

Quand utiliser SOUNDEX( )

Utilisez la fonction SOUNDEX( ) pour rechercher des valeurs qui peuvent sembler similaires. La ressemblance phonétique constitue une façon de repérer les valeurs en double ou de trouver des fautes d'orthographe dans les données manuellement saisies.

Fonctionnement

La fonction SOUNDEX( ) renvoie le code American Soundex correspondant à la chaîne évaluée. Tous les codes sont composés d'une lettre suivie de trois chiffres. Par exemple : "F634".

Construction du code soundex

  • Le premier caractère du code représente la première lettre de la chaîne évaluée.
  • Chaque nombre du code représente l'un des six groupes American Soundex. Ces derniers sont composés des consonnes phonétiquement similaires.

    En fonction de ces groupes, le processus soundex encode les trois premières consonnes de la chaîne évaluée, se trouvant après la première lettre.

Ce que le processus soundex ignore

Le processus soundex ignore :

  • les lettres majuscules
  • les voyelles
  • les consonnes "H", "W" et "Y"
  • les consonnes qui s'affichent après les trois consonnes codées

Si le code renvoyé présente un ou plusieurs zéros (0) de fin, cela indique que la chaîne évaluée contient moins de trois consonnes après la première lettre.

Limites du processus soundex

Les fonctions SOUNDSLIKE( ) et SOUNDEX( ) ont certaines limitations :

  • L'algorithme soundex est conçu pour fonctionner avec des mots prononcés en anglais, et son efficacité est variable lorsqu'il est utilisé avec d'autres langues.
  • Bien que le processus soundex réalise une correspondance phonétique, les mots correspondants doivent tous commencer par la même lettre, ce qui signifie que certains mots qui produisent le même son ne sont pas considérés comme correspondants.

    Par exemple, un mot commençant par un "F" et un mot commençant par "Ph" pourraient produire le même son mais ils ne seront jamais considérés comme correspondants.

Fonctions associées

  • La fonction SOUNDSLIKE( ) fournit une autre méthode de comparaison phonétique de chaînes.
  • Les fonctions ISFUZZYDUP( ) et LEVDIST( ) comparent des chaînes de façon orthographique plutôt que phonétique (son).
  • La fonction DICECOEFFICIENT( ) ne met pas l'accent sur la position des caractères ou des blocs de caractères voire les ignore complètement lors de la comparaison de chaînes de caractères.