Estoy buscando una estructura de datos que admita búsquedas aproximadas eficientes de claves (por ejemplo, distancia de Levenshtein para cadenas), devolviendo la coincidencia más cercana posible para la clave de entrada. La estructura de datos más adecuada que he encontrado hasta ahora son los árboles de Burkhard-Keller , pero me preguntaba si hay otras / mejores estructuras de datos para este propósito.
Editar: algunos detalles más de mi caso específico:
- Las cadenas generalmente tienen una diferencia de Levenshtein bastante grande entre sí.
- Las cadenas tienen una longitud máxima de alrededor de 20-30 caracteres, con un promedio más cercano a 10-12.
- Estoy más interesado en una búsqueda eficiente que en la inserción, ya que construiré un conjunto de datos mayormente estáticos que quiero consultar de manera eficiente.