Валерий В., Куда уж проще, чем я описал. В сотню строк легко можно уложиться, если речь о js или php. Я привел алгоритм, который реально использовал в одном из проектов на с++ (там конечно побольше кода это заняло + порядок слов все-таки учитывался, то есть не было этапа сортировки). Суть была в компенсации неточности OCR распознавания. Работает достаточно быстро.
В вашем случае последний и частично предпоследний этап можно перенести на сторону БД - будет еще быстрее. https://habrahabr.ru/post/342434/