Calculadora de distância de Damerau-Levenshtein | Distância de erros de digitação com transposições
Insira duas cadeias para obter a distância de Damerau-Levenshtein, a similaridade (%) e o valor normalizado. Diferente do Levenshtein clássico, a troca de dois caracteres adjacentes conta como uma única edição, e as quatro operações aparecem separadas para ver onde as cadeias diferem.
💡 Sobre esta ferramenta
Digitar "recieve" no lugar de "receive", ou "teh" em vez de "the", costuma ser apenas duas letras vizinhas na ordem trocada. A distância de Levenshtein clássica trata essa troca como duas edições (uma deleção mais uma inserção, ou duas substituições), o que exagera o quanto as cadeias realmente se distanciam. Em erros de digitação no teclado e falhas de OCR, essa distância extra distorce seus limiares de similaridade.
A distância de Damerau-Levenshtein corrige isso contando uma transposição adjacente como uma única operação, refletindo como as pessoas de fato erram. Esta calculadora retorna a distância e depois a decompõe: quantas inserções, deleções, substituições e transposições a formam. Esse detalhamento permite ajustar um limiar de busca aproximada, filtrar candidatos de um corretor ortográfico ou validar uma regra de deduplicação com seus próprios dados, em vez de adivinhar.
🧐 Perguntas frequentes
Qual a diferença para a distância de Levenshtein? O conjunto de operações permitidas. Levenshtein conta inserções, deleções e substituições. Damerau-Levenshtein acrescenta a transposição de dois caracteres adjacentes como uma operação. Transformar "ab" em "ba" dá distância 2 no Levenshtein e distância 1 no Damerau-Levenshtein.
O que significa a variante OSA? Esta ferramenta usa a variante Optimal String Alignment: uma distância de Damerau-Levenshtein com a regra de que nenhuma substring é editada mais de uma vez. É mais leve de calcular e coincide com a distância real em quase todos os casos, embora, em padrões raros, possa indicar um valor um pouco maior que o Damerau-Levenshtein sem restrição.
Como a similaridade e o valor normalizado são calculados?
O valor normalizado é a distância dividida pelo comprimento da cadeia mais longa, de 0 (idênticas) a 1 (completamente diferentes). A similaridade é o complemento, exibida como (1 − normalizado) × 100 por cento, para comparar de forma justa cadeias de comprimentos diferentes.
Lida com Unicode, acentos e emojis? Sim. A comparação é feita por caractere, então letras acentuadas e caracteres CJK contam como um. Observe que alguns emojis formados por pares substitutos são contados como duas unidades.
Há limite de entrada? Cada campo aceita até 2000 caracteres. Como o algoritmo roda em tempo proporcional ao produto dos dois comprimentos, comparar textos longos demora bem mais que comparar palavras curtas.
📚 Notas de campo sobre distância de edição
A regra de transposição vem de Frederick Damerau, que em 1964 observou que a grande maioria dos erros ortográficos humanos é uma única inserção, deleção, substituição, ou a troca de duas letras contíguas. Essa observação virou base dos corretores ortográficos e da busca aproximada, e ainda hoje alimenta as sugestões de "você quis dizer" e a autocorreção. Na prática, raramente se usa a distância bruta sozinha: ela é combinada com o valor normalizado por comprimento ou um limiar fixo, tratando uma distância de 1–2 como "quase idênticas" em nomes curtos e um valor normalizado abaixo de 0,1 em textos longos. Medir esses limiares com seus próprios dados em uma ferramenta como esta mantém os falsos positivos sob controle.