Я хочу создать алгоритм нечеткого поиска. Однако, в часы исследований я действительно борется.
Я хочу создать алгоритм, который выполняет нечеткий поиск в списке имен школ.
Это то, на что я смотрел до сих пор:
Большинство моих исследований продолжают указывать " строковые показатели" в Google и Stackoverflow, например:
- Расстояние Левенштейна
- Расстояние Дамерау-Левенштейна
- Алгоритм Needleman-Wunsch
Однако это просто дает оценку того, как аналогичные 2 строки. Единственный способ, которым я могу представить его как алгоритм поиска, - это выполнить линейный поиск и выполнить алгоритм строковой метрики для каждой строки и вернуть строки с оценками выше определенного порога. (Первоначально у меня были строки, хранящиеся в дереве, но это, очевидно, мне не поможет!)
Хотя для небольших списков это не такая уж плохая идея, было бы проблематично для списков с разрешением 100 000 имен, и пользователь выполнил много запросов.
Еще один алгоритм, на который я смотрел, - это метод проверки орфографии, где вы просто выполняете поиск всех возможных орфографических ошибок. Однако это также очень неэффективно, так как для слова длиной 7 и количества ошибок всего 2 требуется более 75 000 слов.
Что мне нужно?
Может кто-нибудь, пожалуйста, предложите мне хороший эффективный алгоритм нечеткого поиска. с:
- Название алгоритма
- Как это работает или ссылка на то, как это работает.
- Pro и минусы и когда он лучше всего используется (необязательно)
Я понимаю, что все алгоритмы будут иметь свои плюсы и минусы, и нет лучшего алгоритма.