Алгоритмы ранжирования / релевантности поиска - PullRequest
20 голосов
/ 07 октября 2008

При разработке базы данных статей в Базе знаний (например) - каковы наилучшие способы сортировки и отображения наиболее релевантных ответов на вопрос пользователей?

Будете ли вы использовать дополнительные данные, такие как взвешивание ключевых слов, в зависимости от того, нашли ли предыдущие пользователи статью справки, или вам достаточно простого алгоритма сопоставления ключевых слов?

Ответы [ 5 ]

13 голосов
/ 20 октября 2012

Возможно, самый простой и самый наивный подход, который даст немедленные полезные результаты, заключается в реализации * tf-idf :

Вариации весовой схемы tf – idf часто используются поисковыми системами в качестве центрального инструмента для оценки и ранжирования релевантности документа с учетом пользовательского запроса. tf – idf может быть успешно использован для фильтрации стоп-слов в различных предметных областях, включая суммирование и классификацию текста.

В одном из моих недавних связанных с этим вопросов я узнал об отличной бесплатной книге на эту тему, которую вы можете скачать или прочитать в Интернете:

Введение в поиск информации

3 голосов
/ 07 октября 2008

Это сложный вопрос, и такие компании, как Google, прилагают немало усилий для решения этого вопроса. Взгляните на Google Enterprise Search Appliance или Exalead Enterprise Search .

Тогда, как личное мнение, я не думаю, что какой-либо "наивный" подход значительно улучшит результат по сравнению с наивным поиском и упорядочением по количеству просмотров документов.

Если у вас есть возможность представить свою базу знаний в Интернете, просто сделайте это, и ваша любимая поисковая система обработает ваш запрос.

2 голосов
/ 26 февраля 2016

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

Я думаю, вы можете попробовать -

  1. knn on tfidf для получения информации

  2. Ручная маркировка полученной информации по баллу релевантности

  3. Затем регрессируйте эту оценку, чтобы предсказать оценку для незнакомого результата поиска, и отсортируйте ее.

Просто мысль ...

Третий пункт фактически основан на алгоритме Роккио. Вы можете видеть это здесь

2 голосов
/ 20 декабря 2008

Немного больше конкретики вашей конкретной проблемы было бы хорошо. Есть много разных техник, которые вы можете использовать. Многие из них управляются другими частями данных. Конечно, вы можете использовать Lucene и создавать свои собственные индексы. Для многих языков есть привязки к люцену. Поднимаясь вверх, существует также проект Solr , который представляет собой Lucene с множеством инструментов и дополнительными функциями. Это может быть больше в соответствии с тем, что вы ищете.

Намерение сложно, и большинство современных поисковых систем полагаются на статистическое намерение, чтобы помочь в упорядочении результатов. Вы всегда можете воспользоваться этой кнопкой и сохранить текст запроса, который приведет к полезным документам. Затем вы можете добавить слой информации в указатель, чтобы увеличить конкретные слова или фразы и помочь им указывать на определенные документы.

О чем подумать ... Сколько документов? Какова средняя длина? Они часто обновляются? Что пользователи делают с документами? Как выглядит распространение уникальных слов в документах? (Проще просто сопоставить запрос с определенным документом (ами) на основе общих уникальных функций.)

Если он есть в Интернете, вы всегда можете создать пользовательскую поисковую систему Google, которая просто ищет ваш сайт, хотя может оказаться, что это неоптимально по ряду причин.

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

0 голосов
/ 08 октября 2008

соответствия ключевых слов недостаточно при работе с вопросами, вам нужно понять намерение, поскольку Джоанн говорит, что очень популярная тема в поиске

...