top of page

Similaridade entre duas strings com TheFuzz do Python

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 28 de ago.
  • 2 min de leitura

Você já precisou comparar nomes, títulos ou registros que não são exatamente iguais, mas claramente representam a mesma coisa?


O TheFuzz é uma biblioteca Python para comparar textos usando o conceito de fuzzy matching (busca aproximada).Ela usa algoritmos como o Levenshtein Distance, que mede quantas operações (inserção, exclusão, substituição) seriam necessárias para transformar uma string em outra.

O resultado é um score de similaridade de 0 a 100.Quanto maior o score, mais parecidas são as strings!


Em resumo, o fuzz.ratio serve exatamente para mostrar o quanto o texto A se parece com o texto B, ou seja, a similaridade entre duas strings.Ele retorna um número entre 0 e 100:

  • 100: As strings são idênticas.

  • 0: Completamente diferentes.

  • Qualquer valor entre 0 e 100: Grau de similaridade (quanto maior, mais parecido).



Principais Funções do TheFuzz


  • fuzz.ratio: compara duas strings diretamente (sensível à ordem).

  • fuzz.partial_ratio: identifica se uma string é substring da outra.

  • fuzz.token_sort_ratio: compara strings ignorando a ordem das palavras.

  • fuzz.token_set_ratio: ignora duplicatas e palavras extras, ótimo para nomes.

  • fuzz.WRatio: uma função “inteligente” que combina várias técnicas para trazer o melhor score possível.



Como instalar


Abra o terminal do VS Code e digite: pip install thefuzz[speedup]

(O speedup instala um pacote extra para deixar a biblioteca ainda mais rápida.)



Se você não padronizar, o algoritmo pode achar que são mais diferentes do que realmente são. pois na vida real, nomes e textos podem vir com:


  • Letras maiúsculas/minúsculas diferentes,

  • Acentos (ex: José x Jose),

  • Espaços a mais (ex: "Ana Carolina " x "Ana Carolina"),

  • Pequenas diferenças que não mudam o significado.



Exemplo:

ree



Comparando Listas de Nomes com TheFuzz e Padronização



ree


Saída:

"Ana Karolina" se parece mais com "Ana Carolina" (score: 91)

"Jose Silva" se parece mais com "José da Silva" (score: 90)

"Ana Karolina" se parece mais com "Ana Carolina" (score: 91)

"Jose Silva" se parece mais com "José da Silva" (score: 90)

"Jose Silva" se parece mais com "José da Silva" (score: 90)

"Marcos Vinícios" se parece mais com "Marcos Vinicius" (score: 93)

"Beatriz Da Costa" se parece mais com "Beatriz Costa" (score: 92)

"Carlos Eduardo" se parece mais com "Ana Carolina" (score: 42)

"Amanda Nascimento" se parece mais com "Amanda Nascimento " (score: 100)

"João" se parece mais com "Joao" (score: 100)

© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page