Comment fonctionne la correspondance approximative dans Power Query
Les fonctionnalités de Power Query comme la fusion approximative, les valeurs groupées et le regroupement probable utilisent les mêmes mécanismes pour fonctionner en tant que correspondance approximative.
Cet article passe en revue de nombreux scénarios qui démontrent comment tirer parti des options de la correspondance floue, dans le but de rendre « flou » clair.
Ajuster le seuil de similarité
Le meilleur scénario pour appliquer l’algorithme de correspondance floue est lorsque toutes les chaînes de texte d’une colonne ne contiennent que les chaînes qui doivent être comparées et aucun composant supplémentaire. Par exemple, la comparaison de Apples
à 4ppl3s
permet d’obtenir des scores de similarité plus élevés que la comparaison de Apples
à My favorite fruit, by far, is Apples. I simply love them!
.
Parce que le mot Apples
dans la deuxième chaîne n'est qu'une petite partie de la chaîne de texte entière, cette comparaison donne un score de similarité inférieur.
Ainsi, le jeu de données suivant consiste en réponses à une seule question d’un sondage qui ne comportait qu’une seule question : « Quel est votre fruit préféré ? »
Fruit |
---|
Blueberries (Myrtilles) |
Blue berries are simply the best (Les myrtilles sont tout simplement les meilleures) |
Strawberries (Fraises) |
Strawberries (Fraises) = <3 |
Pommes |
'sples ('smmes) |
4ppl3s (5omm3s) |
Bananes |
fav fruit is bananas (mon fruit préféré est la banane) |
Banas |
My favorite fruit, by far, is Apples. (Mon fruit préféré est, de loin, la pomme.) I simply love them! (Je les adore !) |
Le sondage a fourni une seule zone de texte pour entrer la valeur et n’avait pas de validation.
Votre tâche consiste maintenant à grouper les valeurs. Pour accomplir cette tâche, chargez la table de fruits précédente dans Power Query, sélectionnez la colonne, puis sélectionnez l’option Valeurs du cluster dans l'onglet Ajouter une colonne du ruban.
La boîte de dialogue Valeurs du cluster apparaît, où vous pouvez spécifier le nom de la nouvelle colonne. Nommez cette nouvelle colonne Cluster et sélectionnez OK.
Par défaut, Power Query utilise un seuil de similarité de 0,8 (ou 80 %). La valeur minimale de 0,00 entraîne la correspondance de toutes les valeurs avec n’importe quel niveau de similarité et la valeur maximale de 1,00 autorise uniquement les correspondances exactes. Une « correspondance exacte » approximative peut ignorer les différences telles que la casse, l’ordre des mots et la ponctuation. Le résultat de l’opération précédente génère le tableau suivant avec une nouvelle colonne Cluster.
Bien que le clustering est effectué, il ne vous donne pas les résultats attendus pour toutes les lignes. La ligne numéro deux (2) comporte toujours la valeur Blue berries are simply the best
, mais elle devrait être groupée avec Blueberries
. La même chose se produit avec les chaînes de texte Strawberries = <3
, fav fruit is bananas
et My favorite fruit, by far, is Apples. I simply love them!
.
Pour identifier la cause de ce clustering, double-cliquez sur Valeurs regroupées dans le volet Étapes appliquées pour ramener la boîte de dialogue Valeurs de cluster. À l'intérieur de cette boîte de dialogue, développez Options de cluster flou. Activez l'option Afficher les scores de similarité, et puis sélectionnez OK.
Activer l'option Afficher les scores de similarité crée une colonne dans votre table. Cette colonne affiche le score de similarité exacte entre le cluster défini et la valeur d’origine.
Après une inspection plus approfondie, Power Query n’a pas pu trouver d’autres valeurs dans le seuil de similarité pour les chaînes de texte Blue berries are simply the best
,Strawberries = <3
, fav fruit is bananas
, et My favorite fruit, by far, is Apples. I simply love them!
.
Retournez à la boîte de dialogue Valeurs du cluster une fois de plus en double-cliquant sur Valeurs regroupées dans le volet Étapes appliquées. Changez le seuil de similarité de 0,8 à 0,6, et sélectionnez OK.
Cette modification vous permet de vous rapprocher du résultat escompté, sauf pour la chaîne de texte My favorite fruit, by far, is Apples. I simply love them!
. Lorsque vous avez modifié la valeur du seuil de similarité de 0,8 à 0,6, Power Query était maintenant en mesure d’utiliser les valeurs avec un score de similarité allant de 0.6 jusqu'à 1.
Remarque
Power Query utilise toujours la valeur la plus proche du seuil pour définir les clusters. Le seuil définit la limite inférieure du score de similarité acceptable pour affecter la valeur à un cluster.
Vous pouvez réessayer en changeant le score de similarité de 0,6 à un nombre inférieur jusqu’à ce que vous obteniez les résultats que vous recherchez. Dans ce cas, modifiez le score de similarité à 0,5. Cette modification génère le résultat exact que vous attendez avec la chaîne de texte My favorite fruit, by far, is Apples. I simply love them!
maintenant attribuée au cluster Apples
.
Remarque
Seule la fonctionnalité Valeurs de cluster dans Power Query Online fournit une nouvelle colonne avec le score de similarité actuellement.
Considérations spéciales pour la table de transformation
La table de transformation vous aide à mapper des valeurs de votre colonne à de nouvelles valeurs avant d’effectuer l’algorithme de correspondance approximative.
Voici quelques exemples d'utilisation de la table de transformation :
- Table de transformation par valeurs de cluster
- Table de transformation dans les requêtes de fusion floue
- Table de transformation en groupe par
Important
Lorsque la table de transformation est utilisée, le score de similarité maximale pour les valeurs de la table de transformation est de 0,95. Cette pénalité délibérée de 0,05 est en place pour distinguer que la valeur d’origine de cette colonne n’est pas égale aux valeurs auxquelles elle a été comparée depuis une transformation.
Pour les scénarios où vous souhaitez d’abord mapper vos valeurs, et puis effectuer la correspondance floue sans la pénalité de 0,05, nous vous recommandons de remplacer les valeurs de votre colonne, puis d’effectuer la correspondance floue.