A highly optimized C# implementation of fuzzy word matching with a Directed Acyclic Word Graph.
For background, visit my blog: https://jbp.dev/blog/dawg-basics.html
Eventually there will be a host of content explaining the design decisions involved in creating the Dawg class.
- Performance enhancements in
Lookup()
- Memory management in the
Dawg()
constructor - Node ordering in
PartitionedGraphBuilder.TopologicalSort()
- Reduction of allocations with custom
SuggestItemCollections
This can be plugged into the previous implementation at https://github.com/jeanbern/Augury to provide word-prediction.