Lezen in het Engels

Delen via


Hoe fuzzy matching werkt in Power Query

Power Query-functies zoals fuzzy samenvoegen, clusterwaarden en fuzzy groepering gebruiken dezelfde mechanismen om te werken als fuzzy overeenkomsten.

In dit artikel worden veel scenario's besproken die laten zien hoe u kunt profiteren van de opties die fuzzy matching heeft, met als doel 'fuzzy' duidelijk te maken.

De drempelwaarde voor overeenkomsten aanpassen

Het beste scenario voor het toepassen van het fuzzy match-algoritme is wanneer alle teksttekenreeksen in een kolom alleen de tekenreeksen bevatten die moeten worden vergeleken en geen extra onderdelen. Als u bijvoorbeeld vergelijkt Apples met 4ppl3s hogere overeenkomstenscores dan vergelijken met Apples My favorite fruit, by far, is Apples. I simply love them!.

Omdat het woord Apples in de tweede tekenreeks slechts een klein deel van de hele tekenreeks is, levert die vergelijking een lagere gelijkenisscore op.

De volgende gegevensset bestaat bijvoorbeeld uit antwoorden van een enquête met slechts één vraag: 'Wat is uw favoriete fruit?'

Fruit
Bosbessen
Blauwe bessen zijn gewoon de beste
Aardbeien
Aardbeien = <3
Appels
sples
4ppl3s
Bananen
fav fruit is bananen
Banas
Mijn favoriete fruit, veruit, is Appels. Ik hou gewoon van ze!

De enquête bood één tekstvak om de waarde in te voeren en had geen validatie.

Nu hebt u de taak om de waarden te clusteren. Als u deze taak wilt uitvoeren, laadt u de vorige tabel met vruchten in Power Query, selecteert u de kolom en selecteert u vervolgens de optie Clusterwaarden op het tabblad Kolom toevoegen op het lint.

Schermopname met de optie clusterwaarden op het tabblad Kolom toevoegen op het lint dat beschikbaar is nadat u de kolom Fruit in de tabel hebt geselecteerd.

Het dialoogvenster Clusterwaarden wordt weergegeven, waarin u de naam van de nieuwe kolom kunt opgeven. Geef dit nieuwe kolomcluster een naam en selecteer OK.

Schermopname van het dialoogvenster clusterwaarden nadat u de kolom Fruit hebt geselecteerd. Het nieuwe kolomnaamveld is ingesteld op Cluster.

Power Query gebruikt standaard een gelijkenisdrempel van 0,8 (of 80%). De minimumwaarde van 0,00 zorgt ervoor dat alle waarden met een overeenkomst op elkaar overeenkomen, en de maximumwaarde van 1,00 staat alleen exacte overeenkomsten toe. Een fuzzy 'exacte overeenkomst' kan verschillen negeren, zoals hoofdletters, woordvolgorde en interpunctie. Het resultaat van de vorige bewerking levert de volgende tabel op met een nieuwe clusterkolom .

Schermopname van de standaarduitvoer met een nieuwe clusterkolom na het uitvoeren van de bewerking Clusterwaarden in de kolom Fruit met standaardwaarden.

Hoewel de clustering is voltooid, krijgt u niet de verwachte resultaten voor alle rijen. Rijnummer twee (2) heeft nog steeds de waarde Blue berries are simply the best, maar moet worden geclusterd naar Blueberries, en er gebeurt iets vergelijkbaars met de tekenreeksen Strawberries = <3, fav fruit is bananasen My favorite fruit, by far, is Apples. I simply love them!.

Als u wilt bepalen wat deze clustering veroorzaakt, dubbelklikt u op Geclusterde waarden in het deelvenster Toegepaste stappen om het dialoogvenster Clusterwaarden terug te brengen. Vouw in dit dialoogvenster opties voor Fuzzy-clusters uit. Schakel de optie Overeenkomstenscores weergeven in en selecteer VERVOLGENS OK.

Schermopname van het venster met clusterwaarden met de fuzzy clusteropties weergegeven en de optie overeenkomstenscores weergeven geselecteerd.

Als u de optie Overeenkomstenscores weergeven inschakelt, wordt er een nieuwe kolom in de tabel gemaakt. In deze kolom ziet u de exacte overeenkomstscore tussen het gedefinieerde cluster en de oorspronkelijke waarde.

Schermopname van de tabel met een nieuwe kolom met overeenkomstenscore met de naam Fruit_Cluster_Similarity.

Na nader onderzoek kon Power Query geen andere waarden vinden in de drempelwaarde voor overeenkomsten voor de tekenreeksenBlue berries are simply the best,Strawberries = <3fav fruit is bananas en My favorite fruit, by far, is Apples. I simply love them!.

Ga nog één keer terug naar het dialoogvenster Clusterwaarden door te dubbelklikken op Gegroepeerde waarden in het deelvenster Toegepaste stappen. Wijzig de drempelwaarde voor overeenkomsten van 0,8 in 0,6 en selecteer VERVOLGENS OK.

Schermopname van het dialoogvenster clusterwaarden met de fuzzy clusteropties weergegeven en de drempelwaarde voor overeenkomsten die is ingesteld op 0,6.

Met deze wijziging komt u dichter bij het resultaat dat u zoekt, met uitzondering van de tekenreeks My favorite fruit, by far, is Apples. I simply love them!. Toen u de drempelwaarde voor overeenkomsten van 0,8 naar 0,6 hebt gewijzigd, kon Power Query nu de waarden gebruiken met een overeenkomstscore die begint van 0,6 tot en met 1.

Schermopname van de tabel na het definiëren van de drempelwaarde voor overeenkomsten op 0,6 met nieuwe waarden die zijn toegewezen in de kolom Cluster.

Notitie

Power Query gebruikt altijd de waarde die zich het dichtst bij de drempelwaarde bevindt om de clusters te definiëren. De drempelwaarde definieert de ondergrens van de overeenkomstscore die acceptabel is om de waarde toe te wijzen aan een cluster.

U kunt het opnieuw proberen door de overeenkomstscore van 0,6 te wijzigen in een lager getal totdat u de resultaten krijgt die u zoekt. In dit geval wijzigt u de overeenkomstscore in 0,5. Deze wijziging levert het exacte resultaat op dat u verwacht met de tekenreeks My favorite fruit, by far, is Apples. I simply love them! die nu is toegewezen aan het cluster Apples.

Schermopname van de tabel met alle juiste waarden in de kolom Cluster.

Notitie

Op dit moment biedt alleen de functie Clusterwaarden in Power Query Online een nieuwe kolom met de overeenkomstscore.

Speciale overwegingen voor transformatietabel

Met de transformatietabel kunt u waarden uit uw kolom toewijzen aan nieuwe waarden voordat u het fuzzy overeenkomende algoritme uitvoert.

Enkele voorbeelden van hoe de transformatietabel kan worden gebruikt:

Belangrijk

Wanneer de transformatietabel wordt gebruikt, is de maximale overeenkomstenscore voor de waarden uit de transformatietabel 0,95. Deze opzettelijke boete van 0,05 is ingesteld om te onderscheiden dat de oorspronkelijke waarde van een dergelijke kolom niet gelijk is aan de waarden die het heeft vergeleken sinds er een transformatie is opgetreden.

Voor scenario's waarin u eerst uw waarden wilt toewijzen en vervolgens de fuzzy vergelijking wilt uitvoeren zonder de boete van 0,05, raden we u aan de waarden uit uw kolom te vervangen en vervolgens de fuzzy vergelijking uit te voeren.