SimString
Find a name even when you don’t type it exactly right. Try a search, adjust the similarity, and see why each result matches.
Matches
Results will appear when Ruby is ready.
Why this matches
Highlighted pieces occur in both strings. · marks padding at either end; ␣ marks a space. Repeated pieces are counted separately.
Search
Result
How it works
SimString breaks strings into overlapping character groups called n-grams, then uses an inverted index to retrieve strings meeting your similarity threshold. Select a result to inspect its shared pieces. A score measures n-gram similarity, rather than the number of edits needed to fix a spelling.
This runs my Ruby SimString library in your browser using WebAssembly, with search work on a separate thread. The company names come from the project’s original sample list and may include old names.
Implementation and source
The website copy includes fixes for the Dice overlap cutoff, single-overlap matches, and floating-point threshold boundaries. You can inspect the unmodified library and browser adapter, covered by the MIT license. Ruby’s browser runtime has its own license notices. Read the project write-up.