Hvordan fuzzymatchning fungerer i Power Query
Funktioner i Power Query, f.eks . fuzzyfletning, klyngeværdier og fuzzy gruppering , bruger de samme mekanismer til at fungere som fuzzymatchning.
I denne artikel gennemgås mange scenarier, der viser, hvordan du udnytter de muligheder, som fuzzymatchning har, med det mål at gøre "fuzzy" klar.
Det bedste scenarie for anvendelse af fuzzymatchalgoritmen er, når alle tekststrenge i en kolonne kun indeholder de strenge, der skal sammenlignes, og ingen ekstra komponenter. Hvis du Apples
f.eks. sammenligner med 4ppl3s
giver højere lighedsscores end at My favorite fruit, by far, is Apples. I simply love them!
sammenligne med Apples
.
Da ordet Apples
i den anden streng kun er en lille del af hele tekststrengen, giver denne sammenligning en lavere lighedsscore.
Følgende datasæt består f.eks. af svar fra en undersøgelse, der kun havde ét spørgsmål : "Hvad er din favorit frugt?"
Frugt |
---|
Blåbær |
Blå bær er simpelthen de bedste |
Jordbær |
Jordbær = <3 |
Æbler |
'sples |
4ppl3s |
Bananer |
fav frugt er bananer |
Banas |
Min favorit frugt, langt, er Apples. Jeg elsker dem bare! |
Undersøgelsen indeholdt ét enkelt tekstfelt til input af værdien og havde ingen validering.
Nu har du til opgave at gruppere værdierne. Hvis du vil udføre denne opgave, skal du indlæse den forrige tabel med frugter i Power Query, markere kolonnen og derefter vælge indstillingen Klyngeværdier under fanen Tilføj kolonne på båndet.
Dialogboksen Klyngeværdier vises, hvor du kan angive navnet på den nye kolonne. Navngiv denne nye kolonne Klynge, og vælg OK.
Power Query bruger som standard en lighedsgrænse på 0,8 (eller 80 %). Minimumværdien på 0,00 medfører, at alle værdier med et hvilket som helst lighedsniveau matcher hinanden, og den maksimale værdi på 1,00 tillader kun nøjagtige match. Et fuzzy "nøjagtigt match" ignorerer muligvis forskelle, f.eks. kasse, ordrækkefølge og tegnsætning. Resultatet af den forrige handling giver følgende tabel med en ny klyngekolonne .
Mens klyngeringen er udført, giver den dig ikke de forventede resultater for alle rækkerne. Rækkenummer to (2) har stadig værdien Blue berries are simply the best
, men den skal grupperes til Blueberries
, og der sker noget lignende med tekststrengene Strawberries = <3
, fav fruit is bananas
og My favorite fruit, by far, is Apples. I simply love them!
.
Hvis du vil finde ud af, hvad der forårsager denne klyngedannelse, skal du dobbeltklikke på Grupperede værdier i panelet Anvendte trin for at hente dialogboksen Klyngeværdier tilbage. Udvid Fuzzy-klyngeindstillinger i denne dialogboks. Aktivér indstillingen Vis lighedsscores , og vælg derefter OK.
Hvis du aktiverer indstillingen Vis lighedsscores , oprettes der en ny kolonne i tabellen. I denne kolonne vises den nøjagtige lighedsscore mellem den definerede klynge og den oprindelige værdi.
Ved nærmere kontrol kunne Power Query ikke finde andre værdier i tærsklen for lighed for tekststrengene Blue berries are simply the best
,Strawberries = <3
, fav fruit is bananas
og My favorite fruit, by far, is Apples. I simply love them!
.
Gå tilbage til dialogboksen Klyngeværdier én gang mere ved at dobbeltklikke på Grupperede værdier i panelet Anvendte trin . Skift tærsklen for lighed fra 0,8 til 0,6, og vælg derefter OK.
Denne ændring bringer dig tættere på det resultat, du leder efter, bortset fra tekststrengen My favorite fruit, by far, is Apples. I simply love them!
. Da du ændrede tærsklen for lighed fra 0,8 til 0,6, kunne Power Query nu bruge værdierne med en lighedsscore, der starter fra 0,6 helt op til 1.
Bemærk
Power Query bruger altid den værdi, der er tættest på tærsklen, til at definere klyngerne. Tærsklen definerer den nedre grænse for den lighedsscore, der kan accepteres for at tildele værdien til en klynge.
Du kan prøve igen ved at ændre lighedsscoren fra 0,6 til et lavere tal, indtil du får de resultater, du leder efter. I dette tilfælde skal du ændre lighedsscoren til 0,5. Denne ændring giver det nøjagtige resultat, du forventer, med den tekststreng My favorite fruit, by far, is Apples. I simply love them!
, der nu er tildelt klyngen Apples
.
Bemærk
I øjeblikket er det kun funktionen Klyngeværdier i Power Query Online, der leverer en ny kolonne med lighedsscoren.
Transformationstabellen hjælper dig med at knytte værdier fra din kolonne til nye værdier, før du udfører den fuzzy matchende algoritme.
Nogle eksempler på, hvordan transformationstabellen kan bruges:
- Transformationstabel i klyngeværdier
- Transformationstabel i fuzzy fletteforespørgsler
- Transformationstabel i gruppér efter
Vigtigt
Når transformationstabellen bruges, er den maksimale lighedsscore for værdierne fra transformationstabellen 0,95. Denne forsætlige straf på 0,05 er på plads for at skelne mellem, at den oprindelige værdi fra en sådan kolonne ikke er lig med de værdier, som den blev sammenlignet med, siden en transformation fandt sted.
I scenarier, hvor du først vil tilknytte dine værdier og derefter udføre fuzzymatchning uden straf på 0,05, anbefaler vi, at du erstatter værdierne fra kolonnen og derefter udfører fuzzymatchning.