Определение ключевого слова из запроса - PullRequest
1 голос
/ 20 декабря 2011

У меня есть база данных, полная ключевых слов, где каждое ключевое слово может быть фразой (набором слов), и когда я отправляю запрос, я хочу сопоставить все возможные ключевые слова в запросе.Мне интересно, как это можно эффективно сделать.Проблемы, с которыми я сталкиваюсь:

  • В запросе может быть одно или несколько ключевых слов.
  • Совпадение не должно быть точным (может быть близким).

Я прошел через этот вопрос и решение , но, опять же, я не уверен, как можно сгруппировать слова в запросе, чтобы сформировать фразы, которые можно сравнить с каждым ключевым словом в базе данных.Может быть n (n + 1) / 2 фраз, которые могут быть сформированы для запроса с n словами.Поэтому самое простое решение - сравнить каждую из этих фраз с каждым ключевым словом в базе данных и найти совпадения.Есть ли лучшее решение?Существуют ли стандартные алгоритмы / библиотеки для этого?

1 Ответ

1 голос
/ 20 декабря 2011
  1. Создайте индекс базы данных, используя вашу любимую библиотеку поисковой системы, например, Lucene
  2. Выполнить запрос

Пакеты поисковых систем обычно имеют множество вариантов нечеткого соответствия. В Lucene даже есть проверка орфографии , которая может сопоставить слово с похожими словами.

...