У меня много проблем с поиском алгоритма сопоставления строк, который соответствует моим требованиям.
У меня очень большая база данных строк в несокращенной форме, которую необходимо сопоставить с произвольной аббревиатурой. Строка, которая является реальной подстрокой без букв между символами, также должна совпадать и иметь более высокий балл.
Пример: если слово для сопоставления было «скачать», и я произвел поиск «вниз», «ownl», а затем «dl», я получил бы наивысшее совпадение для «down», за которым следует «ownl» а затем "дл".
Алгоритм должен быть оптимизирован для скорости и большого количества строк для поиска, и он должен позволить мне получить список строк соответствующих элементов (если бы я добавил «download» и «upload» в база данных, поиск «загрузить» должен вернуть оба). Память все еще важна, но не так важна, как скорость.
Есть идеи? Я провел ряд исследований по некоторым из этих алгоритмов, но я не нашел ни одного, который бы даже касался сокращений, не говоря уже о всех этих условиях!