Разбор произвольного текста (естественный язык) с помощью solr - PullRequest
1 голос
/ 15 февраля 2011

Я пытаюсь построить алгоритм синтаксического анализа запроса для локального поискового сайта, который может классифицировать запрос произвольного текстового поиска (одно текстовое поле ввода) на различные типы возможных поисков, возможных на сайте.

Например, пользователь мог напечатать китайские рестораны около xyz. Как мне разобраться с кухней: «китайский», местность: «xyz», учитывая, что

- there could be spelling mistakes
- keywords may match in different columns e.g. a restaurant may have "chinese" in its name

Это на самом деле не проблема синтаксического анализа естественного языка, так как мы пытаемся искать в очень ограниченном наборе возможностей

Мои первоначальные мысли - сбросить все значения определенного типа в поле из базы данных и использовать запрос пользователей для сопоставления во всех этих полях. Затем на основе оценки (и предварительно определенного уровня достоверности) разделите запрос на 3-4 поля поиска, такие как имя / кухня / местность.

Есть ли лучший / стандартный способ сделать это.

1 Ответ

0 голосов
/ 17 февраля 2011

Об орфографических ошибках нужно работать со словарем / тезаурусом.Это может быть частью вашей предварительной обработки и нормализации.

О запросах в нескольких столбцах вы можете сделать;кухня: китайская ИЛИ restaurant_name: китайская

Вы можете повысить одно из двух: кухня: китайская ^ 0.8 ИЛИ restaurant_name: китайская

...