Hur fuzzy-matchning fungerar i Power Query
Power Query-funktioner som fuzzy-sammanslagning, klustervärden och fuzzy-gruppering använder samma mekanismer för att fungera som fuzzy-matchning.
Den här artikeln går igenom många scenarier som visar hur du kan dra nytta av de alternativ som fuzzy matchning har, med målet att göra "fuzzy" tydlig.
Det bästa scenariot för att tillämpa fuzzy-matchningsalgoritmen är när alla textsträngar i en kolumn endast innehåller de strängar som behöver jämföras och inga extra komponenter. Om du till exempel jämför Apples
med ger högre likhetspoäng än att Apples
My favorite fruit, by far, is Apples. I simply love them!
jämföra med 4ppl3s
.
Eftersom ordet Apples
i den andra strängen bara är en liten del av hela textsträngen ger den jämförelsen en lägre likhetspoäng.
Följande datauppsättning består till exempel av svar från en undersökning som bara hade en fråga – "Vad är din favoritfrukt?"
Frukt |
---|
Blåbär |
Blå bär är helt enkelt de bästa |
Jordgubbar |
Jordgubbar = <3 |
Äpplen |
'sples |
4ppl3s |
Bananas |
fav frukt är bananer |
Banas |
Min favoritfrukt är äpplen. Jag älskar dem helt enkelt! |
Undersökningen tillhandahöll en enda textruta för att mata in värdet och hade ingen validering.
Nu har du till uppgift att klustra värdena. Om du vill utföra den uppgiften läser du in den tidigare frukttabellen i Power Query, väljer kolumnen och väljer sedan alternativet Klustervärden på fliken Lägg till kolumn i menyfliksområdet.
Dialogrutan Klustervärden visas, där du kan ange namnet på den nya kolumnen. Namnge det här nya kolumnklustret och välj OK.
Som standard använder Power Query ett likhetströskelvärde på 0,8 (eller 80 %). Minimivärdet 0,00 gör att alla värden med någon likhetsnivå matchar varandra, och det maximala värdet på 1,00 tillåter endast exakta matchningar. En fuzzy "exakt matchning" kan ignorera skillnader som hölje, ordordning och skiljetecken. Resultatet av föregående åtgärd ger följande tabell med en ny klusterkolumn .
Klustring är klar, men du får inte det förväntade resultatet för alla rader. Rad nummer två (2) har fortfarande värdet Blue berries are simply the best
, men det bör grupperas till Blueberries
, och något liknande händer med textsträngarna Strawberries = <3
, fav fruit is bananas
och My favorite fruit, by far, is Apples. I simply love them!
.
Om du vill ta reda på vad som orsakar klustring dubbelklickar du på Klustrade värden i panelen Tillämpade steg för att ta tillbaka dialogrutan Klustervärden . I den här dialogrutan expanderar du Fuzzy-klusteralternativ. Aktivera alternativet Visa likhetspoäng och välj sedan OK.
Om du aktiverar alternativet Visa likhetspoäng skapas en ny kolumn i tabellen. Den här kolumnen visar den exakta likhetspoängen mellan det definierade klustret och det ursprungliga värdet.
Vid närmare kontroll kunde Power Query inte hitta några andra värden i likhetströskelvärdet för textsträngarna Blue berries are simply the best
,Strawberries = <3
, fav fruit is bananas
och My favorite fruit, by far, is Apples. I simply love them!
.
Gå tillbaka till dialogrutan Klustervärden en gång till genom att dubbelklicka på Klustrade värden i panelen Tillämpade steg. Ändra tröskelvärdet för likhet från 0,8 till 0,6 och välj sedan OK.
Den här ändringen tar dig närmare det resultat som du letar efter, förutom textsträngen My favorite fruit, by far, is Apples. I simply love them!
. När du ändrade tröskelvärdet för likhet från 0,8 till 0,6 kunde Power Query nu använda värdena med en likhetspoäng som börjar från 0,6 hela vägen upp till 1.
Anteckning
Power Query använder alltid det värde som är närmast tröskelvärdet för att definiera klustren. Tröskelvärdet definierar den lägre gränsen för likhetspoängen som är acceptabel för att tilldela värdet till ett kluster.
Du kan försöka igen genom att ändra likhetspoängen från 0,6 till ett lägre tal tills du får de resultat du letar efter. I det här fallet ändrar du likhetspoängen till 0,5. Den här ändringen ger det exakta resultat som du förväntar dig med textsträngen My favorite fruit, by far, is Apples. I simply love them!
som nu har tilldelats klustret Apples
.
Anteckning
För närvarande innehåller endast funktionen Klustervärden i Power Query Online en ny kolumn med likhetspoängen.
Transformeringstabellen hjälper dig att mappa värden från kolumnen till nya värden innan du utför den fuzzy matchande algoritmen.
Några exempel på hur transformeringstabellen kan användas:
- Transformeringstabell i klustervärden
- Transformeringstabell i fuzzy-kopplingsfrågor
- Transformeringstabell i grupp efter
Viktigt
När transformeringstabellen används är den maximala likhetspoängen för värdena från transformeringstabellen 0,95. Den här avsiktliga påföljden 0,05 är på plats för att skilja det ursprungliga värdet från en sådan kolumn inte är lika med de värden som det jämfördes med sedan en omvandling inträffade.
För scenarier där du först vill mappa dina värden och sedan utföra fuzzy-matchningen utan straffvärdet 0,05 rekommenderar vi att du ersätter värdena från kolumnen och sedan utför fuzzy-matchningen.