Ler em inglês

Compartilhar via


Como a correspondência difusa funciona no Power Query

Os recursos do Power Query, como mesclagem difusa, Valores de cluster e agrupamento difuso usam os mesmos mecanismos para funcionar como correspondência difusa.

Este artigo aborda muitos cenários que demonstram como aproveitar as opções que a correspondência difusa tem, com o objetivo de deixar claro o "fuzzy".

Ajustar o limite de similaridade

O melhor cenário para aplicar o algoritmo de correspondência difusa é quando todas as cadeias de caracteres de texto em uma coluna contêm apenas as cadeias de caracteres que precisam ser comparadas e nenhum componente extra. Por exemplo, comparar Apples com 4ppl3s gera pontuações de similaridade mais altas do que comparar Apples com My favorite fruit, by far, is Apples. I simply love them!.

Como a palavra Apples na segunda cadeia de caracteres é apenas uma pequena parte de toda a cadeia de caracteres de texto, essa comparação produz uma pontuação de similaridade mais baixa.

Por exemplo, o conjunto de dados a seguir consiste em respostas de uma pesquisa que tinha apenas uma pergunta: "Qual é a sua fruta favorita?"

Fruta
Blueberries
Blue berries are simply the best
Strawberries
Strawberries = <3
Maçãs
'sples
4ppl3s
Bananas
fav fruit is bananas
Banas
My favorite fruit, by far, is Apples. I simply love them!

A pesquisa forneceu uma única caixa de texto para inserir o valor e não teve validação.

Agora você tem a tarefa de agrupar os valores. Para executar essa tarefa, carregue a tabela de frutas anterior no Power Query, selecione a coluna e selecione a opção Valores de cluster na guia Adicionar coluna da faixa de opções.

Captura de tela com a opção Clusterizar valores na guia Adicionar coluna na faixa após a seleção da coluna Fruta na tabela.

A caixa de diálogo Valores de cluster é exibida, na qual você poderá especificar o nome da nova coluna. Dê o nome de Cluster a essa nova coluna e selecione OK.

Captura de tela da caixa de diálogo Clusterizar valores após selecionar a coluna Fruta. O nome da nova coluna foi definido como Cluster.

Por padrão, o Power Query usa um limite de similaridade de 0,8 (ou 80%). O valor mínimo de 0,00 faz com que todos os valores com qualquer nível de semelhança correspondam entre si, e o valor máximo de 1,00 só permite correspondências exatas. Uma "correspondência exata" difusa pode ignorar diferenças como maiúsculas, ordem de palavras e pontuação. O resultado da operação anterior produz a tabela a seguir com uma nova coluna Cluster.

Captura de tela da saída padrão com uma nova coluna Cluster após realizar a operação Clusterizar valores na coluna Fruta com os valores padrão.

Embora o clustering seja feito, ele não está fornecendo os resultados esperados para todas as linhas. A linha número dois (2) ainda tem o valor Blue berries are simply the best, mas deveria ser clusterizado como Blueberries, e algo semelhante acontece com as cadeias de caracteres de texto Strawberries = <3, fav fruit is bananas e My favorite fruit, by far, is Apples. I simply love them!.

Para determinar o que está causando esse agrupamento, clique duas vezes em Valores de cluster no painel Etapas aplicadas para recuperar a caixa de diálogo Valores de cluster. Dentro dessa caixa de diálogo, expanda Opções de cluster difuso. Habilite a opção Mostrar pontuações de similaridade e selecione OK.

Captura de tela da janela clusterizar valores com as opções de cluster difuso exibidas e a opção Mostrar as pontuações de similaridade selecionada.

Habilitar a opção Mostrar pontuações de similaridade cria uma nova coluna na tabela. Esta coluna mostra a pontuação de similaridade exata entre o cluster definido e o valor original.

Captura de tela da tabela com a nova coluna de pontuações de similaridade com o nome Fruit_Cluster_Similarity.

Após uma inspeção mais detalhada, o Power Query não conseguiu encontrar outros valores no limite de similaridade para as cadeias de caracteres de texto Blue berries are simply the best, Strawberries = <3, fav fruit is bananas e My favorite fruit, by far, is Apples. I simply love them!.

Volte para a caixa de diálogo Valores de cluster mais uma vez clicando duas vezes em Valores de cluster no painel Etapas aplicadas. Altere o Limite de similaridade de 0,8 para 0,6, e selecione OK.

Captura de tela da caixa de diálogo Clusterizar valores com as opções de cluster difuso exibidas e o limite de similaridade definido como 0,6.

Essa alteração o aproxima do resultado que você está procurando, exceto pela cadeia de caracteres de texto My favorite fruit, by far, is Apples. I simply love them!. Quando você alterou o valor Limite de similaridade de 0,8 para 0,6, o Power Query pôde usar os valores com uma pontuação de similaridade que começa de 0,6 até 1.

Captura de tela da tabela após definir o limite de similaridade em 0,6 com novos valores atribuídos na coluna Cluster.

Observação

O Power Query sempre usa o valor mais próximo do limite para definir os clusters. O limite define o limite inferior da pontuação de similaridade aceitável para atribuir o valor a um cluster.

Você pode tentar novamente alterando a Pontuação de similaridade de 0,6 para um número menor até obter os resultados que está procurando. Nesse caso, altere a Pontuação de similaridade para 0,5. Essa alteração produz o resultado exato que você está esperando com a cadeia de texto My favorite fruit, by far, is Apples. I simply love them! agora atribuída ao cluster Apples.

Captura de tela da tabela com todos os valores corretos na coluna Cluster.

Observação

Atualmente, apenas o recurso Valores de cluster no Power Query Online fornece uma nova coluna com a pontuação de similaridade.

Considerações especiais para a tabela de transformação

A tabela de transformação ajuda a mapear valores da coluna para novos valores antes de executar o algoritmo de correspondência difusa.

Alguns exemplos de como a tabela de transformação pode ser usada:

Importante

Quando a tabela de transformação é usada, a pontuação máxima de similaridade para os valores da tabela de transformação é 0,95. Essa penalidade deliberada de 0,05 está em vigor para distinguir que o valor original de tal coluna não é igual aos valores com os quais foi comparado desde que uma transformação ocorreu.

Para cenários em que você primeiro quer mapear seus valores e, então, executar a correspondência difusa sem a penalidade de 0,05, recomendamos que você substitua os valores da coluna e, depois, execute a correspondência difusa.