Commande FUZZYJOIN
Information de concept
Utilise les correspondances approximatives pour combiner des champs de deux tables Analytics dans une nouvelle table Analytics unique.
Remarque
Pour détecter des valeurs presque identiques dans un seul champ de type caractère (doublons approximatifs), consultez la rubrique Commande FUZZYDUP.
Pour joindre des tables à l'aide des valeurs de champs clés correspondant exactement, consultez la rubrique Commande JOIN.
Syntaxe
FUZZYJOIN {DICE PERCENT pourcentage NGRAM longueur_n-grammes|LEVDISTANCE DISTANCE valeur} PKEY champ_clé_principal SKEY champ_clé_secondaire {FIELDS champs_principaux|FIELDS ALL <EXCLUDE champs_principaux <...n>>} <WITH champs_secondaires|WITH ALL <EXCLUDE champs_secondaires <...n>>> <IF test> <OPEN> TO nom_table <FIRSTMATCH> <WHILE test> <FIRST plage|NEXT plage> <APPEND>
Remarque
Vous ne pouvez pas exécuter la commande FUZZYJOIN localement par rapport à une table de serveur.
Vous devez indiquer en entier le nom de la commande FUZZYJOIN. Vous ne pouvez pas l'abréger.
Paramètres
| Nom | Description |
|---|---|
| DICE PERCENT pourcentage NGRAM longueur_n-grammes | LEVDISTANCE DISTANCE valeur |
L'algorithme de correspondance approximative à utiliser. DICE utilise l'algorithme du coefficient de Dice
LEVDISTANCE utilise l'algorithme de distance Levenshtein
|
| PKEY champ_clé_principal |
Le champ clé, ou l'expression clé, de type caractère dans la table principale. Vous ne pouvez spécifier qu'un seul champ clé principal. |
| SKEY champ_clé_secondaire |
Le ou les champs clés, ou l'expression clé, de type caractère dans la table secondaire. Vous ne pouvez spécifier qu'un seul champ clé secondaire. |
| FIELDS champs_principaux | FIELDS ALL |
Les champs ou expressions de la table principale à inclure dans la table de sortie jointe.
Remarque Vous devez indiquer de manière explicite le champ clé principal si vous voulez l'intégrer dans la table jointe. Indiquer FIELDS ALL permet aussi de l'intégrer. |
| EXCLUDE champs_principaux optionnel |
Valide uniquement en cas de réalisation d'une jointure approximative à l'aide de FIELDS ALL. Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser le mot-clé ALL, en excluant les champs spécifiés. EXCLUDE doit suivre immédiatement FIELDS ALL, ou la dernière occurrence du mot-clé ALL si vous incluez des champs d'une ou de plusieurs tables associées. Par exemple : FIELDS ALL EXCLUDE champ_1 champ_2 FIELDS ALL nom_table_associée.ALL EXCLUDE champ_1 champ_2 |
|
WITH champs_secondaires | WITH ALL optionnel |
Les champs ou expressions de la table secondaire à inclure dans la table de sortie jointe.
Remarque Vous devez indiquer de manière explicite le champ clé secondaire si vous voulez l'intégrer dans la table jointe. Indiquer WITH ALL permet aussi de l'intégrer. |
| EXCLUDE champs_secondaires optionnel |
Valide uniquement en cas de réalisation d'une jointure approximative à l'aide de WITH ALL. Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser WITH ALL, en excluant les champs spécifiés. EXCLUDE doit suivre immédiatement WITH ALL. Par exemple : WITH ALL EXCLUDE champ_1 champ_2 |
|
IF test optionnel |
Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée uniquement sur les enregistrements remplissant la condition. Remarque La condition IF est évaluée uniquement par rapport aux enregistrements restant dans une table après application des options relevant du champ d'application (WHILE, FIRST, NEXT). Remarque La condition IF peut faire référence à la table principale, à la table secondaire ou aux deux. |
|
OPEN optionnel |
Ouvre la table créée par la commande après l'exécution de la commande. Valide uniquement lorsque la commande crée une table de sortie. |
| TO nom_table |
Emplacement vers lequel envoyer les résultats de la commande :
|
|
FIRSTMATCH optionnel |
Spécifie que chaque valeur de clé primaire n'est jointe qu'à la première occurrence d'une correspondance de clé secondaire. S'il se trouve que la première occurrence est une correspondance exacte, les correspondances approximatives suivantes pour la valeur de clé primaire ne sont pas incluses dans la table de sortie jointe. Si vous omettez FIRSTMATCH, le comportement par défaut de FUZZYJOIN consiste à joindre chaque valeur de clé primaire à toutes les occurrences des correspondances de clés secondaires. FIRSTMATCH est utile si vous voulez seulement savoir s'il existe des correspondances, exactes ou approximatives, entre deux tables, et si vous souhaitez éviter le temps de traitement nécessaire pour identifier toutes les correspondances. Vous pouvez également utiliser FIRSTMATCH si vous êtes certain qu'il n'existe qu'une seule correspondance dans la table secondaire pour chaque valeur de clé primaire. |
|
WHILE test optionnel |
Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée jusqu'à ce que la condition soit évaluée comme fausse ou lorsque la fin de la table est atteinte. Remarque Si vous utilisez WHILE conjointement avec FIRST ou NEXT, le traitement des enregistrements s'arrête dès qu'une limite est atteinte. |
|
FIRST plage | NEXT plage optionnel |
Le nombre d'enregistrements à traiter :
Utilisez plage pour indiquer le nombre d'enregistrements à traiter. Si vous ignorez FIRST et NEXT, tous les enregistrements sont traités par défaut. |
|
APPEND optionnel |
Ajoute la sortie de commande à la fin d'un fichier existant au lieu de remplacer ce fichier. Remarque Vous devez vous assurer que la structure de la sortie de la commande et du fichier existant est identique :
Analytics ajoute la sortie à un fichier existant sans tenir compte de sa structure, ce qui peut désordonner les données si la structure de la sortie et du fichier existant ne correspond pas. |
|
ISOLOCALE code_paramètres_régionaux optionnel |
Remarque Applicable dans l'édition Unicode d'Analytics uniquement. Paramètre système local au format langue_pays. Par exemple, pour utiliser le français canadien, saisissez fr_ca. Utilisez les codes suivants :
Si vous n'utilisez pas ISOLOCALE, ce sont les paramètres système régionaux par défaut qui sont utilisés. |
Exemples
Utilisez les correspondances approximatives pour joindre deux tables afin de détecter les employés susceptibles d'être des fournisseurs
L'exemple ci-dessous joint les tables Empmast et Fournisseur en utilisant l'adresse comme champ clé commun (champs Adresse et Rue_Fournisseur).
La commande FUZZYJOIN crée une nouvelle table avec des enregistrements primaires et secondaires qui sont des correspondances exactes ou approximatives. Le résultat est une liste de tous les employés et fournisseurs ayant soit une adresse identique, soit une adresse similaire.
FUZZYJOIN avec l'algorithme du coefficient de Dice
OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
FUZZYJOIN DICE PERCENT 0,8000 NGRAM 2 PKEY Adresse SKEY Rue_Fournisseur FIELDS Numéro_Employé Prénom Nom Adresse WITH Numéro_fournisseur Nom_fournisseur Rue_Fournisseur OPEN TO "Correspondance_employé_fournisseur"
FUZZYJOIN avec l'algorithme de distance Levenshtein
OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Adresse SKEY Rue_Fournisseur FIELDS Numéro_Employé Prénom Nom Adresse WITH Numéro_fournisseur Nom_fournisseur Rue_Fournisseur OPEN TO "Correspondance_employé_fournisseur"
Inclure tous les champs
Cette version de la commande FUZZYJOIN inclut tous les champs des tables principale et secondaires dans la table de sortie jointe.
OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Adresse SKEY Rue_Fournisseur FIELDS ALL WITH ALL OPEN TO "Correspondance_employé_fournisseur"
Améliorer l'efficacité des correspondances approximatives
L'exemple ci-dessous utilise la fonction SORTWORDS( ) pour améliorer l'efficacité des correspondances approximatives entre les champs Adresse et Rue_Fournisseur. L'utilisation de la fonction UPPER( ) permet d'assurer que la casse n'affecte pas le tri des éléments dans les valeurs de champs clés.
OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY SORTWORDS(UPPER(Adresse)) SKEY SORTWORDS(UPPER(Rue_Fournisseur)) FIELDS Numéro_Employé Prénom Nom Adresse WITH Numéro_fournisseur Nom_fournisseur Rue_Fournisseur OPEN TO "Correspondance_employé_fournisseur"
Remarques
Pour plus d'informations sur le fonctionnement de cette commande, consultez Jointure approximative.
Respect de la casse
La commande FUZZYJOIN n'est pas sensible à la casse, quel que soit l'algorithme de correspondances approximatives que vous utilisez. "SMITH" est donc équivalent à "smith".
Espaces de début et de fin
La commande FUZZYJOIN tronque les espaces de début et de fin dans les champs de manière automatique, quel que soit l'algorithme de correspondances approximatives que vous utilisez. Il n'est pas nécessaire d'utiliser les fonctions TRIM( ) ou ALLTRIM( ) pour spécifier les champs clés principaux et secondaires.
Améliorer l'efficacité de FUZZYJOIN
Trois techniques peuvent améliorer considérablement l'efficacité de la commande FUZZYJOIN :
- trier les éléments individuels dans les valeurs des champs clés primaires et secondaires
- supprimer les éléments génériques des valeurs des champs clés primaires et secondaires
- harmoniser les valeurs des champs clés primaires et secondaires
Ces techniques vous permettent d'utiliser des paramètres approximatifs plus stricts et d'obtenir toujours les mêmes correspondances approximatives, tout en réduisant le nombre de fausses correspondances positives. Vous pouvez utiliser ces techniques séparément ou en combinaison.
Trier les éléments individuels dans les valeurs des champs clés
La fonction SORTWORDS( ) peut améliorer l'efficacité de la commande FUZZYJOIN en triant les éléments individuels des valeurs des champs clés primaires et secondaires dans un ordre séquentiel.
Trier des éléments, comme les composantes d'une adresse, permet de faire en sorte que des valeurs de champs clés comportant les mêmes informations, mais à un format différent, se ressemblent davantage. Une ressemblance plus proche améliore la probabilité que des valeurs de champs clés soient sélectionnées comme correspondances approximatives les unes des autres.
Pour plus d'informations, consultez la rubrique Fonction SORTWORDS( ).
Pour une vidéo de présentation de SORTWORDS( ), consultez Correspondance approximative avec SORTWORDS() (en anglais uniquement).
Remarque
Le tri des éléments dans les valeurs des champs clés est le mieux adapté aux jointures approximatives en utilisant l'algorithme de distance Levenshtein.
Le tri des éléments pendant les jointures approximatives à l'aide de l'algorithme du coefficient de Dice peut être avantageux ou non. Tester un jeu de données d'échantillon avant de décider d'utiliser SORTWORDS( ) conjointement avec l'algorithme du coefficient de Dice dans un cadre de production.
Attention
Si vous utilisez SORTWORDS( ) conjointement avec la commande FUZZYJOIN, vous devez appliquer SORTWORDS( ) aux deux chaînes de caractères ou aux deux champs comparés.
Suppression des éléments génériques des valeurs des champs clés
La fonction OMIT( ) peut améliorer l'efficacité de la commande FUZZYJOIN en supprimant des éléments génériques tels que « Corporation » ou « Inc. » ou des caractères comme les virgules, les points et les esperluettes (&) dans les valeurs des champs clés primaires et secondaires.
La suppression d'éléments génériques et de ponctuation recentre la correspondance approximative des valeurs de champs clés uniquement sur la portion des valeurs dans lesquelles une différence significative peut se présenter.
Pour plus d'informations, consultez la rubrique Fonction OMIT( ).
Harmoniser les valeurs des champs clés
Les fonctions REPLACE( ) ou REGEXREPLACE( ) peuvent améliorer l'efficacité de la commande FUZZYJOIN en harmonisant les variantes d'un même élément dans les valeurs des champs clés primaires et secondaires. Par exemple, vous pourriez harmoniser "Street", "St." et "St" pour utiliser la valeur unique "St".
Harmoniser des éléments permet de faire en sorte que des valeurs de champs clés comportant les mêmes informations, mais à un format différent, se ressemblent davantage. Une ressemblance plus proche améliore la probabilité que des valeurs de champs clés soient sélectionnées comme correspondances approximatives les unes des autres.
Pour plus d'informations, consultez Fonction REPLACE( ) concernant les remplacements directs et Fonction REGEXREPLACE( ) concernant les remplacements plus complexes.