Устранение термина запроса

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

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

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


person Denis Bazhenov    schedule 30.07.2011    source источник


Ответы (1)


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

Если вы хотите обрабатывать более сложные запросы, вы можете поместить запрос в CNF - например. (термин1 или термин2 или ... термин) И (элемент1 или элемент2 или ... элементk) И ... и затем переопределить веса wi соответственно. Вы могли бы перечислить рядом с каждым результатом термины, которые не совпали в файле... чтобы пользователи, по крайней мере, знали, насколько хорошо это совпадение.

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

person Patrick87    schedule 01.08.2011
comment
Действительно хороший момент. Чего мы пытаемся достичь в данный момент, так это максимизировать полноту, даже если потеряем некоторый уровень точности. Мы считаем, что это очень плохо, когда поисковая система говорит: Документы не найдены. С другой стороны, когда люди получают много нерелевантных результатов, они обычно знают, как уточнить запрос. Поэтому мы стараемся свести к минимуму случаи, когда поисковая система не находит документы. - person Denis Bazhenov; 05.08.2011