Estou procurando uma estrutura de dados que suporte pesquisas aproximadas eficientes de chaves (por exemplo, distância de Levenshtein para seqüências de caracteres), retornando a correspondência mais próxima possível da chave de entrada. A estrutura de dados mais adequada que eu encontrei até agora são as árvores Burkhard-Keller , mas eu queria saber se existem outras / melhores estruturas de dados para esse fim.
Edit: Mais alguns detalhes do meu caso específico:
- As cordas geralmente têm uma diferença Levenshtein bastante grande uma da outra.
- As cordas têm um comprimento máximo de cerca de 20 a 30 caracteres, com uma média mais próxima de 10 a 12.
- Estou mais interessado em pesquisa eficiente do que em inserção, pois construirei um conjunto de dados principalmente estáticos que desejo consultar com eficiência.