Commande FUZZYJOIN

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 (doublons approximatifs) dans un seul champ de type caractère, consultez la section Commande FUZZYDUP.

Pour connaître les différentes options lors de la jointure de 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} <WITH champs_secondaires|WITH ALL> <IF test> <OPEN> <FIRSTMATCH> TO nom_table <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

  • PERCENT pourcentage le coefficient minimum autorisé de deux chaînes de caractères pour qu'elles puissent être qualifiées de correspondance approximative

    Spécifiez un nombre décimal, compris entre 0,0000 et 1,0000 (par exemple, 0,7500). Utilisez quatre décimales au maximum.

    Le fait de diminuer cette valeur augmente le nombre de correspondances en incluant des correspondances d'un niveau d'approximation supérieur, c'est-à-dire des chaînes de caractères qui diffèrent davantage les unes des autres.

  • NGRAM longueur_n-grammes la longueur n-grammes à utiliser

    Spécifiez un nombre entier, 1 ou plus.

    Augmenter la longueur n-grammes rend encore plus strict le critère de similarité entre deux chaînes de caractères.Les

    N-grammes sont les sous-chaînes (blocs de caractères) qui se chevauchent et parmi lesquelles les chaînes de comparaison sont divisées dans le cadre du calcul du coefficient de Dice.

    Remarque

    Lorsque vous spécifiez DICE, la commande FUZZYJOIN utilise la fonction DICECOEFFICIENT( ) dans une instruction IF pour joindre conditionnellement des valeurs de champs clés. Pour des informations détaillées sur la fonction, consultez la section Fonction DICECOEFFICIENT( ).

LEVDISTANCE utilise l'algorithme de distance Levenshtein

  • DISTANCE valeur la distance de Levenshtein maximale permise entre deux chaînes de caractères pour qu'elles puissent être qualifiées de correspondance approximative

    Spécifiez un nombre entier, 1 ou plus.

    Le fait d'augmenter cette valeur augmente le nombre de correspondances en incluant des correspondances d'un niveau d'approximation supérieur, c'est-à-dire des chaînes de caractères qui diffèrent davantage les unes des autres.

    Remarque

    Lorsque vous spécifiez LEVDISTANCE, la commande FUZZYJOIN utilise la fonction LEVDIST( ) dans une instruction IF pour joindre conditionnellement des valeurs de champs clés. Pour des informations détaillées sur la fonction, consultez la section Fonction LEVDIST( ).

    Contrairement à la fonction, l'algorithme de distance Levenshtein de la commande FUZZYJOIN tronque automatiquement les espaces de début et de fin, et n'est pas sensible à la casse.

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.

  • champs_principaux incluez le(s) champ(s) spécifié(s)
  • ALL incluez tous les champs de la table

Remarque

Vous devez indiquer de manière explicite le champ clé principal si vous voulez l'intégrer dans la table jointe. Le fait d'indiquer ALL permet aussi de l'inclure.

WITH champs_secondaires | WITH ALL

optionnel

Les champs ou expressions de la table secondaire à inclure dans la table de sortie jointe.

  • champs_secondaires incluez le(s) champ(s) spécifié(s)
  • ALL incluez tous les champs de la table

Remarque

Vous devez indiquer de manière explicite le champ clé secondaire si vous voulez l'intégrer dans la table jointe. Le fait d'indiquer ALL permet aussi de l'inclure.

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.

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 réduire 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.

Remarque

FIRSTMATCH n'est disponible qu'en tant que paramètre ACLScript. L'option n'est pas disponible dans l'interface utilisateur Analytics.

TO nom_table

Emplacement vers lequel envoyer les résultats de la commande :

  • nom_table enregistre les résultats dans une table Analytics

    Indiquez nom_table sous forme de chaîne entre guillemets avec une extension de fichier .FIL. Par exemple : TO "Sortie.FIL"

    Par défaut, le fichier de données de table (.FIL) est enregistré dans le dossier contenant le projet Analytics.

    Utilisez un chemin de fichier absolu ou relatif pour enregistrer le fichier de données dans un autre dossier existant :

    • TO "C:\Sortie.FIL"
    • TO "Résultats\Sortie.FIL"

    Remarque

    La longueur des noms des tables est limitée à 64 caractères alphanumériques, sans l'extension .FIL. Le nom peut inclure le caractère de soulignement ( _ ), mais aucun autre caractère spécial ni espace. Le nom ne peut pas commencer par un chiffre.

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 :

  • FIRST pour commencer le traitement à partir du premier enregistrement jusqu'à ce que le nombre d'enregistrements spécifié soit atteint
  • NEXT pour commencer le traitement à partir de l'enregistrement actuellement sélectionné jusqu'à ce que le nombre d'enregistrements spécifié soit atteint

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 :

  • les mêmes champs
  • le même ordre des champs
  • les champs correspondants ont la même longueur
  • les champs correspondants ont le même type de données

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 :

  • langue code linguistique de la norme ISO 639
  • pays code pays de la norme ISO 3166

    Si vous n'indiquez pas de code pays, c'est le pays par défaut pour la langue qui est utilisé.

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"

Remarques

Remarque

Pour plus d'informations sur le fonctionnement de cette commande, consultez le Aide d'Analytics.

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.

Guide de création de scripts ACL 14.1