Comparação de strings

Comparação de strings

Como fazer para compara duas palavras de uma lista?

Normalmente, utiliza-se uma função nativa do excel, como o procv ou um corresp.

Mas, na vida real, nem sempre dá para fazer assim. Há diferenças de padrões de nomes, digitação de informação manual, etc, de modo que possa ser interessante fazer uma busca por similaridade.

Por exemplo, digamos que as palavras “Marrocos” e “Martocos” estão na minha lista. Provavelmente a segunda é um erro de digitação, e na verdade a pessoa queria se referir à primeira palavra.

Existem funções que calculam a similaridade entre duas strings, e vou descrever uma aqui.

Vide a planilha em https://drive.google.com/open?id=1UFInO4JFG14ymFqWt1hkyGnbbGVM2E9L (lembre-se de ativar macros).

A macro dentro dela utiliza um método de contagem de letras.

image001.png

Ela conta todos os “a”s das palavras, depois todos os “b”s, etc. E calcula a distância entre o número de “a”s da primeira e da segunda palavra. Faz isto para todas as letras.

Se forem iguais, a distância vai ser 1. se forem bem parecidas, a distância vai ser próxima de 1. Quanto próxima de  zero, menos iguais serão.

É uma função relativamente simples, que pode ser adaptada para utilização em vários casos.

Um exemplo real de utilização é para saneamento do cadastro de materiais. Empresas podem ter 100 mil, 200 mil materiais cadastrados, e muitos deles podem ser os mesmos. Mas uma busca manual de todo o cadastro é impensavelmente longa e trabalhosa. O algoritmo de similaridade pode ser utilizado para fazer um primeiro filtro, deixando apenas as candidatas mais óbvias.

Já ouvi dizer que, a fim de saber se a autoria de um livro é de autor X ou Y, utiliza-se técnica semelhante. Conta-se as palavras, e faz-se uma comparação entre este “diagrama” espectral do livro e o diagrama dos autores. Cada um tem um estilo favorito, palavras de que gosta, que acabam sendo as mais utilizadas, principalmente em livros e textos longos.

Em caso de dúvidas ou sugestões, utilizar os comentários.

Arnaldo Gunzi


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Fev 2016

Anúncios
Postado em VBA

3 comentários sobre “Comparação de strings

  1. Boa noite Arnaldo Gunzi, Tentei baixar o arquivo do Excel mas parece que ele não está mais no caminho informado. Poderia colocá-lo novamente? Obrigado e parabéns pelo site. Eduardo

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s