P A T H

Criando um Fuzzy Match entre colunas de uma mesma linha

O que você vai aprender?

Como bem sabemos, o Alteryx pode tratar vários tipos dados em seus mais diversificados formatos. Uma de suas tratativas avançadas é a combinação difusa, ou, Fuzzy Match.

Nesse tipo de combinação, verificamos através de algoritmos a probabilidade de uma String ser igual a outra. Essa ferramenta realiza essas comparações dentro de uma mesma coluna (podemos inclusive incluir múltiplas colunas), mas, como fazemos para comparar diversas colunas dentro de uma única linha?

Bem, é isso que aprenderemos hoje.

PASSO 1: ENTENDENDO O PROBLEMA

Vamos supor que eu tenho uma base de dados que contêm no formato de coluna as várias versões de uma mesma música do Cantor, e precisamos padronizar todas as versões com um mesmo nome que seja comum a todas.

Imagem1 dica alteryx 104

Se fizéssemos um Fuzzy Match normal, a ferramenta iria comparar cada coluna entre si (VERSAO1 com VERSAO1, VERSAO2 com VERSAO2, VERSAO3 com VERSAO3), dizendo que a música “CRAVO E CANELA” da Anitta é igual a música “CRAVO E CANELA” de Milton Nascimento.

Imagem2 dica alteryx 104
Imagem3 dica alteryx 104

Outra solução seria fazer uma transposição das colunas, mas ainda assim as diversas versões dos diversos artistas seriam comparadas entre si, gerando o mesmo resultado exibido anteriormente.

Imagem4 dica alteryx 104
Imagem5 dica alteryx 104

MAAAASSS, a solução do transpose não é completamente errada, mas precisaríamos comparar os registros as versões de cada cantor. E para isso criaremos uma Macro Iterativa.

PASSO 2: CONSTRUINDO A MACRO

O primeiro passo é converter o nosso fluxo que contêm o transpose em uma Macro, para isso abrimos as configurações do worklow (clicando na parte branca do canvas), e alterando o Type para Macro -> Iterative Macro.

Imagem6 dica alteryx 104

Além disso incluiremos antes do Transpose uma ferramenta de Macro Input, e após o último join uma ferramenta de Macro Output.

Imagem7 dica alteryx 104

PASSO 3: CONFIGURANDO A ITERATIVE MACRO

A Iterative macro é um tipo de macro que executa suas atividades em looping, então sua principal configuração é como esse looping deve funcionar. Até onde ele vai? Quando ele para? Qual a condição do looping?

No nosso caso, precisamos que essa macro seja executada uma vez para cada artista/linha, dessa forma iremos incluir antes do transpose iremos utilizar uma ferramenta select records para pegar a primeira linha, e outra ferramenta select records para buscar as outras linhas, ficando da seguinte forma.

Imagem8 dica alteryx 104

Assim, ao executar o fluxo, ele irá aplicar o fuzzy apenas dentro da linha desejada.

O último passo da configuração da macro é determinar como nosso looping irá se comportar (pois ao executar o fluxo acima, ele irá tratar apenas a Anitta e irá desconsiderar os outros cantores), para isso fazemos mais 2 coisas, incluímos uma nova Macro output após o Select Records da parte de baixo e configuramos nossas entradas e saídas da seguinte forma:

Imagem9 dica alteryx 104

Após isso, iremos ao menu View -> Interface Designer. Na nova janela iremos clicar na engrenagem no lado esquerdo e configurar nossa macro da seguinte forma:

Imagem10 dica alteryx 104

Pronto, nossa macro está feita, agora vamos salvá-la e voltar para um fluxo em branco.

PASSO 4: FUZZY HORIZONTAL

No nosso fluxo em branco iremos carregar nossa base original, e incluir a nova macro ao fluxo. Para incluir a macro basta clicar com o lado direito no canvas e seguir os menus como na imagem abaixo.

Obs.: caso a macro esteja aberta em outra aba do Alteryx, ela irá aparecer imediatamente no grupo de macros. Caso não esteja, será necessário ir pelo browse e encontrá-la em seu computador.

Imagem11 dica alteryx 104

Após a inclusão da macro e execução do fluxo, temos o seguinte resultado:

Imagem12 dica alteryx 104

Pronto, criamos nossa macro de fuzzy horizontal onde será gerado o padrão para todas as colunas.
Vale ressaltar que para a nossa regra de negócio faz sentido utilizar as ferramentas de Sorte e Select records dentro da macro, pois queremos apenas o nome mais provável para a padronização, mas todas as regras podem ser adaptadas de acordo com sua necessidade, podendo trazer todas as comparações, antes e depois, múltiplas possibilidades.

23 de Agosto de 2022

Pronto, agora você já sabe como realizar um Fuzzy Match horizontal entre diversas colunas!

Language