2010-02-21 2 views
2

У меня возникли проблемы с поиском алгоритма соответствия строк, который соответствует моим требованиям.Алгоритм поиска строк для быстрого совпадения аббревиатуры в большом списке сокращенных строк?

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

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

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

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

ответ

0

Я бы подумал, можно ли каким-то образом адаптировать Петра Норвига к spell checker для этой проблемы.

Это растяжка, которую я еще не приступил к работе, но это такое элегантное решение, о котором стоит знать.