Я использую список синонимов, чтобы направлять процесс расширения запроса.Формат выглядит следующим образом:
fu=foo
ba=bar
etc=etcetera
werd=word
Я использую простой алгоритм двоичного поиска для запуска каждого из слов пользовательского ввода в этом списке.Проблема в том, что когда дело доходит до фраз .
quick brown fox=alphabet
out of this world=space
why hello there=hello
Типичный ввод: why hello there, where can I get an out of this world hopper?
И желаемый вывод: hello, where can I get an space hopper?
Я не хочу проходить каждую пару слов или тройку черезпоиск тоже, и я хочу, чтобы избежать линейного поиска в списке тезаурусов по входным данным, поскольку это неэффективно (хотя список должен быть довольно маленьким, так что это вариант).
Поэтому я ищу способы выполнить бинарный поиск по фразам или построить тезаурус таким образом, чтобы компенсировать фразы.
Я использую PHP для этого.Любые предложения приветствуются.