Benchmarking for fuzzy search and stable matching components
Find a file
2025-10-15 14:07:26 +02:00
bench BK-tree + Damerau-Levenstein distance 2025-10-15 13:53:16 +02:00
lib BK-tree + Damerau-Levenstein distance 2025-10-15 13:53:16 +02:00
tests debugging automaton build 2025-10-15 13:53:16 +02:00
.gitignore Split various implementations from the compiler 2025-10-15 13:53:16 +02:00
dune-project Split various implementations from the compiler 2025-10-15 13:53:16 +02:00
LICENSE Initial commit 2025-10-15 13:52:05 +02:00
README.md add basic README 2025-10-15 14:07:26 +02:00

A collections of prototype implementations of fuzzy search across dictionary.

The aim was mostly to have comparison points in term of complexity and performance for the OCaml module error messages implementation.

The various implementations tested:

  • Simple quadratic method
  • Symmetric deletion methods
  • Burkhard-Keller tree method
  • Trie and Levenstein-automaton method
  • Naive trie based method

For the expected parameters of OCaml error messages, the simple quadratic method is fast enough and in fact the fastest one method without further optimisation on the limited benchmark used.

For larger size, symmetric deletions dictionaries seems like another good option in term of complexity and performance (it starts to outperform the simple method with more than 500 elements to match).

The current implementation of trie-based methods is slower than the simple methods with less than 3000 elements to pair. It could be optimized using Forward-backward pair for instance, but at a cost of a certain increase in complexity.