Исключение запроса - PullRequest
0 голосов
/ 30 июля 2011

В логической модели поиска запрос состоит из терминов, которые объединяются с помощью различных операторов. На первый взгляд конъюнкция является наиболее очевидным выбором, но при росте длины запроса происходят плохие вещи. При использовании конъюнкта количество вызовов значительно снижается, а при использовании дизъюнкции - точность (например, stanford OR university).

На данный момент мы используем конъюнкцию нашей поисковой системы (и логическую модель поиска). И у нас есть проблема, если пользователь вводит очень редкое слово или длинную последовательность слов. Например, если пользователь вводит toyota corolla 4wd automatic 1995, у нас, вероятно, его нет. Но если мы удалим хотя бы одно слово из запроса, у нас есть такие документы. Насколько я понимаю, в Vector Space Model эта проблема решается автоматически. Мы не фильтруем документы по факту наличия термина, мы ранжируем документы, используя наличие терминов.

Так что меня интересуют более продвинутые способы объединения терминов в булевой модели поиска и методы исключения редких терминов в булевой модели поиска.

1 Ответ

0 голосов
/ 02 августа 2011

Кажется, что небо это предел с точки зрения определения функции ранжирования здесь.Вы можете определить вектор, где wi: 0, если i-й поисковый термин не появляется в файле, 1, если он появляется;количество раз, когда поисковый термин i появляется в файле;и т. д. Затем ранжируйте страницы на основе, например, расстояния Манхэттена, евклидова расстояния и т. д., и сортируйте их в порядке убывания, возможно, отбрасывая результаты с расстоянием ниже указанного допуска на совпадение.

Если вы хотите обрабатывать более сложные запросы, выможет поместить запрос в CNF - например, (term1 или term2 или ... termn) AND (item1 или item2 или ... itemk) AND ... и затем переопределить веса wi соответственно.Вы можете перечислить с каждым результатом термины, которые не соответствуют в файле ... так, чтобы пользователи по крайней мере знали, насколько оно соответствует.

Я думаю, что я действительно пытаюсь сказать, эточто для того, чтобы действительно получить ответ, который работает для вас, вы должны точно определить, что вы готовы принять в качестве действительного результата поиска.Согласно строгой интерпретации, запрос, который ищет A1 и A2 и ... Am , должен завершиться неудачей, если отсутствует какое-либо из терминов ...

...