Алгоритм поиска строки для быстрого сопоставления аббревиатуры в большом списке несокращенных строк? - PullRequest
3 голосов
/ 21 февраля 2010

У меня много проблем с поиском алгоритма сопоставления строк, который соответствует моим требованиям.

У меня очень большая база данных строк в несокращенной форме, которую необходимо сопоставить с произвольной аббревиатурой. Строка, которая является реальной подстрокой без букв между символами, также должна совпадать и иметь более высокий балл.

Пример: если слово для сопоставления было «скачать», и я произвел поиск «вниз», «ownl», а затем «dl», я получил бы наивысшее совпадение для «down», за которым следует «ownl» а затем "дл".

Алгоритм должен быть оптимизирован для скорости и большого количества строк для поиска, и он должен позволить мне получить список строк соответствующих элементов (если бы я добавил «download» и «upload» в база данных, поиск «загрузить» должен вернуть оба). Память все еще важна, но не так важна, как скорость.

Есть идеи? Я провел ряд исследований по некоторым из этих алгоритмов, но я не нашел ни одного, который бы даже касался сокращений, не говоря уже о всех этих условиях!

1 Ответ

0 голосов
/ 21 февраля 2010

Интересно, можно ли каким-то образом адаптировать средство проверки орфографии Питера Норвига .

Это натяжение, которое я еще не начал разрабатывать, но это такое элегантное решение, о котором стоит знать.

...