Unione fuzzy
L'unione fuzzy è una funzionalità di preparazione dei dati intelligente che è possibile usare per applicare algoritmi di corrispondenza fuzzy durante il confronto delle colonne. Questi algoritmi tentano di trovare corrispondenze tra le tabelle unite.
È possibile abilitare la corrispondenza fuzzy nella parte inferiore della finestra di dialogo Unione selezionando il pulsante Usa corrispondenza fuzzy per eseguire il pulsante di opzione di unione . Altre informazioni: Panoramica delle operazioni di merge
Nota
La corrispondenza fuzzy è supportata solo nelle operazioni di unione sulle colonne di testo. Power Query usa l'algoritmo di somiglianza Jaccard per misurare la somiglianza tra coppie di istanze.
Scenario di esempio
Un caso d'uso comune per la corrispondenza fuzzy è costituito da campi di testo a mano libera, ad esempio in un sondaggio. Per questo articolo, la tabella di esempio è stata ricavata direttamente da un sondaggio online inviato a un gruppo con una sola domanda: Qual è il tuo frutto preferito?
I risultati del sondaggio sono visualizzati nell'immagine seguente.
Screenshot della tabella di output del sondaggio di esempio contenente il grafico della distribuzione delle colonne che mostra nove risposte distinte con tutte le risposte univoche e le risposte al sondaggio con tutti i problemi di digitazione, plurali o singolari e caso.
I nove record riflettono gli invii di sondaggi. Il problema con gli invii di sondaggi è che alcuni hanno errori di digitazione, alcuni sono plurali, alcuni sono singolari, alcuni sono maiuscoli e alcuni sono minuscoli.
Per standardizzare questi valori, in questo esempio è disponibile una tabella di riferimento Fruits .
Screenshot della tabella di riferimento Frutta contenente il grafico di distribuzione delle colonne che mostra quattro frutti distinti con tutti i frutti univoci e l'elenco dei frutti: mela, ananas, ananas, anguria e banana.
Nota
Per semplicità, questa tabella di riferimento Di Frutta include solo il nome dei frutti che saranno necessari per questo scenario. La tabella di riferimento può avere il numero di righe necessario.
L'obiettivo è creare una tabella come quella seguente, in cui sono stati standardizzati tutti questi valori in modo da poter eseguire più analisi.
Screenshot della tabella di output del sondaggio di esempio con la colonna Domanda contenente il grafico della distribuzione delle colonne. Il grafico mostra nove risposte distinte con tutte le risposte univoce. Le risposte al sondaggio contengono tutti i problemi di digitazione, plurale o singolare e caso. La tabella di output contiene anche la colonna Fruit. Questa colonna contiene il grafico di distribuzione delle colonne che mostra quattro risposte distinte con una risposta univoca. Elenca anche tutti i frutti correttamente incantesimi, singolari e caso corretto.
Operazione di unione fuzzy
Per eseguire l'unione fuzzy, iniziare eseguendo un merge. In questo caso, si usa un left outer join, in cui la tabella sinistra è quella del sondaggio e la tabella destra è la tabella di riferimento Fruits . Nella parte inferiore della finestra di dialogo selezionare la casella di controllo Usa corrispondenza fuzzy per eseguire l'unione .
Dopo aver selezionato OK, è possibile visualizzare una nuova colonna nella tabella a causa di questa operazione di unione. Se si espande, è presente una riga che non contiene valori. Questo è esattamente il messaggio della finestra di dialogo nell'immagine precedente indicato quando ha detto "La selezione corrisponde a 8 di 9 righe dalla prima tabella".
Screenshot della colonna fruit aggiunta alla tabella Survey. Tutte le righe nella colonna Domanda vengono espanse, ad eccezione della riga 9, che non è stato possibile espandere e la colonna Fruit contiene null.
Opzioni corrispondenza fuzzy
È possibile modificare le opzioni di corrispondenza Fuzzy per modificare il modo in cui deve essere eseguita la corrispondenza approssimativa. Selezionare prima di tutto il comando Merge query e quindi nella finestra di dialogo Merge espandere Opzioni di corrispondenza fuzzy.
Le opzioni disponibili sono:
- Soglia di somiglianza (facoltativa): valore compreso tra 0,00 e 1,00 che consente di trovare una corrispondenza con i record al di sopra di un determinato punteggio di somiglianza. Una soglia di 1,00 equivale a specificare criteri di corrispondenza esatti. Ad esempio, Uva corrisponde a Graes (senza la lettera p) solo se la soglia è impostata su meno di 0,90. Per impostazione predefinita, questo valore è impostato su 0,80.
- Ignora maiuscole/minuscole: consente la corrispondenza dei record indipendentemente dal caso del testo.
- Corrispondenza combinando parti di testo: consente di combinare parti di testo per trovare corrispondenze. Ad esempio, Micro soft viene confrontato con Microsoft se questa opzione è abilitata.
- Mostra punteggi di somiglianza: mostra i punteggi di somiglianza tra l'input e i valori corrispondenti dopo la corrispondenza fuzzy.
- Numero di corrispondenze (facoltativo): specifica il numero massimo di righe corrispondenti che possono essere restituite per ogni riga di input.
- Tabella di trasformazione (facoltativa): consente la corrispondenza dei record in base ai mapping di valori personalizzati. Ad esempio, uva viene confrontata con le raisine se viene specificata una tabella di trasformazione in cui la colonna From contiene Uva e la colonna A contiene le raisine.
Tabella di trasformazione
Per l'esempio in questo articolo, è possibile usare una tabella di trasformazione per eseguire il mapping del valore con una coppia mancante. Tale valore è apls, che deve essere mappato ad Apple. La tabella di trasformazione include due colonne:
- Da contiene i valori da trovare.
- Per contenere i valori utilizzati per sostituire i valori trovati tramite la colonna From .
Per questo articolo, la tabella di trasformazione è simile alla seguente:
Da | Per |
---|---|
apls | Apple |
È possibile tornare alla finestra di dialogo Unione e in Opzioni di corrispondenza fuzzy in Numero di corrispondenze immettere 1. Abilitare l'opzione Mostra punteggi di somiglianza e quindi, in Tabella trasformazione, selezionare Trasforma tabella dal menu a discesa.
Dopo aver selezionato OK, è possibile passare al passaggio di unione. Quando si espande la colonna con valori di tabella, oltre al campo Fruit viene visualizzato anche il campo Punteggio di somiglianza. Selezionare entrambi e espanderli senza aggiungere un prefisso.
Dopo aver espanso questi due campi, questi vengono aggiunti alla tabella. Si notino i valori ottenuti per i punteggi di somiglianza di ogni valore. Questi punteggi consentono di ottenere ulteriori trasformazioni se necessario per determinare se è necessario abbassare o aumentare la soglia di somiglianza.
Per questo esempio, il punteggio di somiglianza funge solo da informazioni aggiuntive e non è necessario nell'output di questa query, quindi è possibile rimuoverlo. Si noti che l'esempio ha iniziato con nove valori distinti, ma dopo l'unione fuzzy sono presenti solo quattro valori distinti.
Screenshot della tabella di output del sondaggio di merge fuzzy con la colonna Domanda contenente il grafico di distribuzione delle colonne che mostra nove risposte distinte con tutte le risposte univoche e le risposte al sondaggio con tutti i problemi di digitazione, plurale o singolare e caso. Contiene anche la colonna Fruit con il grafico di distribuzione delle colonne che mostra quattro risposte distinte con una risposta univoca e elenca tutti i frutti correttamente digitati, singolarmente e caso corretto.
Per altre informazioni sul funzionamento delle tabelle di trasformazione, vedere Precetti tabella di trasformazione.