Læs på engelsk

Del via


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.

Juster tærsklen for lighed

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.

Skærmbillede med indstillingen Klyngeværdier under fanen Tilføj kolonne på båndet, der er tilgængelig, når du har valgt kolonnen Frugt i tabellen.

Dialogboksen Klyngeværdier vises, hvor du kan angive navnet på den nye kolonne. Navngiv denne nye kolonne Klynge, og vælg OK.

Skærmbillede af dialogboksen klyngeværdier, når du har valgt kolonnen Frugt. Det nye kolonnenavnsfelt er angivet til Klynge.

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 .

Skærmbillede af standardoutputtet med en ny klyngekolonne, efter at du har udført handlingen Klyngeværdier i kolonnen Frugt med standardværdier.

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 bananasog 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.

Skærmbillede af vinduet med klyngeværdier, hvor indstillingerne for fuzzyklynger vises, og indstillingen Vis lighedsscores er valgt.

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.

Skærmbillede af tabellen med en ny kolonne med lighedsscore med navnet Fruit_Cluster_Similarity.

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 bananasog 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.

Skærmbillede af dialogboksen klyngeværdier, hvor indstillingerne for fuzzyklynger vises, og tærsklen for lighed er angivet til 0,6.

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.

Skærmbillede af tabellen, efter at tærsklen for lighed er defineret til 0,6 med nye værdier tildelt i kolonnen Klynge.

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.

Skærmbillede af tabellen med alle de korrekte værdier i kolonnen Klynge.

Bemærk

I øjeblikket er det kun funktionen Klyngeværdier i Power Query Online, der leverer en ny kolonne med lighedsscoren.

Særlige overvejelser i forbindelse med transformationstabellen

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:

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.