Aprenda a comparar textos com Python
O módulo difflib em Python possui ferramentas para comparar sequências, o que pode ser particularmente útil para comparar textos. Ele conta com várias classes e funções que permitem identificar diferenças entre sequências, como strings ou listas, e produzir informações sobre essas diferenças em vários formatos. Conheça alguns de seus principais recursos a seguir.
Classe SequenceMatcher
A classe SequenceMatcher pode ser usada para verificar as semelhanças entre duas sequências. Ela possui um método chamado ratio() que retorna uma medida da similaridade das sequências como um float no intervalo [0, 1].
import difflib
frase1 = "Sua obra foi de fundamental importância para as escolas."
frase2 = "Sua obra foi fundamentalmente importante para as escolas."
# SequenceMatcher
s = difflib.SequenceMatcher(None, frase1, frase2)
print(f"Similaridade: {s.ratio()}")
# resultado: Similaridade: 0.8672566371681416
Classe Differ
Essa classe pode ser usada para comparar textos arranjados em duas sequências de linhas. Ela indica quais são as diferenças entre elas num formato legível por humanos. Ou seja, essa classe destaca as variações entre as sequências, como adições, exclusões e modificações. Seu sistema de símbolos consiste no uso de ‘- ‘ para indicar elementos exclusivos da sequência 1, ‘+ ‘ para elementos exclusivos da sequência 2. As linhas que começam com ‘?’ tentam guiar nosso foco para as diferenças intra-linhas. Veja um exemplo de comparação com Differ abaixo:
frase1 = "Sua obra foi de fundamental importância para as escolas."
frase2 = "Sua obra foi fundamentalmente importante para as escolas."
# Differ
d = difflib.Differ()
diff = list(d.compare(frase1.splitlines(), frase2.splitlines()))
print('\n'.join(diff))
# resultado
# - Sua obra foi de fundamental importância para as escolas.
# ? --- ^ ^^^
# + Sua obra foi fundamentalmente importante para as escolas.
# ? +++++ ^ ^^
função get_close_matches()
A função get_close_matches() localiza as melhores correspondências para uma determinada palavra a partir de uma lista de possibilidades. Ela é útil para tarefas como verificação ortográfica ou encontrar palavras semelhantes. Veja um exemplo de como usá-la abaixo:
palavras = ["fundamento", "fundamentalmente", "fundamentado"]
close_matches = difflib.get_close_matches("fundamental", palavras)
print(f"Mais parecidos: {close_matches}")
# resultado: ['fundamentado', 'fundamento', 'fundamentalmente']
Neste código, fornecemos uma lista de palavras e uma palavra-chave que precisa ser comparada. A função get_close_matches() retorna uma lista com as palavras em ordem de similaridade.
Para saber mais sobre essa função e outros recursos do módulo difflib para comparar textos e outras sequências, consulte a documentação oficial.
Veja também:
Concatenações com join() para strings em Python
O que é operador ternário em Python?
F-strings em Strings Multilinhas
Decodificação de strings em Python com decode()
Métodos para Manipular Strings em Python
Módulo Getpass para Prompts de Senhas
Aprenda a comparar textos com Python com Difflib
Módulo textwrap para formatação de textos
Manipulação de arquivos com Python
os.environ: gerenciamento de variáveis de ambiente com Python
Métodos Avançados Do Módulo os
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.