Fonction SORTWORDS( )
Renvoie une chaîne contenant des mots individuels triés dans un ordre séquentiel.
Syntaxe
SORTWORDS(chaîne)
Paramètres
Nom | Type | Description |
---|---|---|
chaîne | caractère |
La chaîne, ou l'expression, contenant les mots à trier. Un « mot » est tout caractère ou groupe de caractères séparés par des espaces :
Les espaces multiples entre les mots sont automatiquement converties en une seule espace. Les espaces de tête ou de fin sont automatiquement tronquées. |
Sortie
Caractère.
Exemples
Exemples de base
Valeur d'entrée littérale de type caractère
Renvoie "1 2 A Z a z" (Analytics non Unicode) :
SORTWORDS("Z a 2 z A 1")
Renvoie "1 2 a A z Z" (Analytics Unicode) :
SORTWORDS("Z a 2 z A 1")
Renvoie "1 2 A A Z Z" :
SORTWORDS(UPPER("Z a 2 z A 1"))
Renvoie "CA; FL NY; TX;" :
SORTWORDS("CA; TX; NY; FL")
Renvoie "CA FL NY TX" :
SORTWORDS(OMIT("CA; TX; NY; FL"; ";"))
Entrée de champ
Renvoie toutes les valeurs du champ Adresse_Fournisseur avec les éléments d'adresse triés dans l'ordre séquentiel :
SORTWORDS(Adresse_Fournisseur)
Exemples avancés
Trier les éléments d'adresse pour améliorer la correspondance des doublons approximatifs
Vous pouvez utiliser SORTWORDS( ) comme fonction d'aide lorsque vous effectuez divers types de correspondance approximative dans Analytics.
Effet de la fonction SORTWORDS( ) sur la distance de Levenshtein
Examinons d'abord la distance Levenshtein entre deux occurrences de la même adresse, présentant un format différent.
Sans la fonction SORTWORDS( ), la distance de Levenshtein renvoyée est 22. Une distance Levenshtein aussi élevée indique que les deux chaînes ne sont pas la même adresse :
LEVDIST("125 SW 39TH ST; Suite 100"; "Suite 100; 125 SW 39TH ST")
Maintenant, ajoutons la fonction SORTWORDS( ). La distance renvoyée par Levenshtein est 2 - nettement inférieure - ce qui indique que les deux chaînes de caractères sont la même adresse.
LEVDIST(SORTWORDS("125 SW 39TH ST; Suite 100"); SORTWORDS("Suite 100; 125 SW 39TH ST"))
Isoler les doublons approximatifs de "125 SW 39TH ST, Suite 100"
Vous créez un filtre qui isole toutes les valeurs dans le champ Adresse_fournisseur qui se trouve dans une distance Levenshtein spécifiée de "125 SW 39TH ST, Suite 100" :
SET FILTER TO LEVDIST(SORTWORDS(Adresse_Fournisseur); SORTWORDS("125 SW 39TH ST; Suite 100"); F) < 3
SET FILTER TO ISFUZZYDUP(SORTWORDS(Adresse_Fournisseur); SORTWORDS("125 SW 39TH ST; Suite 100"); 3; 99)
Augmenter ou diminuer la distance Levenshtein dans les expressions ( 3 ) permet d'ajuster le niveau de différence des valeurs filtrées.
Pour plus d'informations sur la distance Levenshtein, consultez la section Fonction LEVDIST( ).
Remarques
Vidéo aperçu
Pour une vidéo de présentation de la fonction, consultez Correspondance approximative avec SORTWORDS() (en anglais uniquement).
La séquence de tri utilisée par la fonction SORTWORDS( )
La fonction SORTWORDS( ) utilise toute séquence de tri spécifiée dans l'option Ordre de tri (Outils > Options > Table). Les séquences de tri par défaut sont présentées ci-dessous.
Pour des informations détaillées, consultez la section L'option Ordre de tri et les séquences de tri.
Édition Analytics |
Ordre de tri par défaut |
Séquence de tri associée |
---|---|---|
Non Unicode |
Système par défaut (ASCII) |
Nombres, puis majuscules, puis minuscules : 0, 1, 2... A, B, C... a, b, c... Exemple : « Z » est trié avant « a ». |
Unicode |
Mélanger les langages (UCA) (algorithme de classement Unicode) |
Nombres, puis minuscules et majuscules mélangées les unes avec les autres : 0, 1, 2... a, A, b, B, c, C... Exemple : « a » est trié avant « Z ». |
Respect de la casse
La fonction SORTWORDS( ) respecte la casse. Selon l'édition d'Analytics que vous utilisez (non Unicode ou Unicode), la casse des chaînes de caractères peut affecter le tri.
Vous pouvez utiliser la fonction UPPER( ) conjointement avec la fonction SORTWORDS( ) si vous ne voulez pas que la casse affecte le tri :
SORTWORDS(UPPER("chaîne_de_caractères"))
La fonction SORTWORDS( ) peut améliorer les correspondances approximatives
La fonction SORTWORDS( ) peut améliorer l'efficacité des commandes de mise en correspondance approximative et des filtres ou conditions qui utilisent des fonctions de correspondance approximative :
- Commande FUZZYJOIN
- Commande FUZZYDUP
- Fonction ISFUZZYDUP( )
- Fonction LEVDIST( )
- Fonction DICECOEFFICIENT( )
Attention
Si vous utilisez SORTWORDS( ) conjointement avec l'une des commandes ou fonctions de correspondance approximative, vous devez appliquer SORTWORDS( ) aux deux chaînes de caractères ou aux deux champs comparés. L'application de la fonction à une seule des deux chaînes ou champs peut sérieusement dégrader les résultats de la correspondance approximative.
Algorithme de distance Levenshtein
La fonction SORTWORDS( ) est particulièrement utile lorsqu'elle est utilisée avec des commandes et des fonctions basées sur l'algorithme de distance de Levenshtein, qui renvoie des valeurs de différence plus importantes lorsque des éléments identiques ou similaires dans deux chaînes de caractères sont dans des positions différentes. En triant d'abord les éléments, vous pouvez réduire considérablement les valeurs de différence renvoyées par l'algorithme de Levenshtein. Les ensembles de résultats comportent moins de faux positifs et plus de vrais positifs.
Algorithme du coefficient de Dice
La fonction SORTWORDS( ) peut être utile lorsqu'elle est utilisée avec des commandes et des fonctions basées sur l'algorithme du coefficient de Dice. Cependant, il n'en résulte pas toujours une amélioration de l'efficacité. De par sa conception, l'algorithme du coefficient de Dice minimise l'importance de la position des éléments, de sorte que le tri des éléments a moins d'impact qu'avec l'algorithme de distance de Levenshtein.
Selon la nature des données, SORTWORDS( ) peut en fait dégrader l'efficacité en faisant en sorte que l'algorithme du coefficient de Dice renvoie des scores plus faibles. 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.
Un deuxième élément à prendre en compte est que l'intérêt de l'utilisation de SORTWORDS( ) est plus modeste lorsque la longueur en n-grammes du coefficient de Dice est plus courte. À mesure que l'on réduit la longueur en n-grammes, l'algorithme du coefficient de Dice minimise de plus en plus l'importance de la position des éléments.