Улучшение поисковой системы - PullRequest
2 голосов
/ 29 декабря 2011

Я работаю над поисковой системой.По большей части я просто использую Lucene из Appache, который до сих пор работал отлично, но я также хотел улучшить результаты поиска, установив хорошую «эвристику» в поиске.(Например, если кто-то ищет «кушетка», а все кушетки занесены в каталог типа «диван», я хочу, чтобы алгоритм поиска установил соединение.)

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

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Мне нужно было создать нечто подобное для моего класса искусственного интеллекта.Я создаю веб-сканер, который связывает синонимы слов, аналогичные тому, что вы хотите сделать.Когда пользователь ищет такой термин, как «кушетка», я взял все синонимы кушетки и сохранил их в базе данных со ссылкой на исходное слово.Когда двигатель снова запустится и будет найден «диван», приложение снова получит синонимы «диван» (синоним «диван»).После этого вы сможете найти соответствие этой ассоциации.

Существует множество бесплатных API для получения синонима слова.Попробуйте изменить результаты поиска в Google на поисковые роботы для конкретных тем или поисковые системы для конкретных тем.Вы получите лучшие результаты

1 голос
/ 29 декабря 2011

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

        couch   sofa   chair
couch |  100  |   95 |   75  |
sofa  |   95  |  100 |   65  |
chair |   75  |   65 |  100  |

Другим подходом может быть адаптивное обновление этой матрицы с выбором пользователей.например, если пользователь ищет кушетку, а затем нажимает «Стул», вы можете увеличить балл по кушетке на определенный порог (разумеется, вы должны перенормировать все баллы после каждого обновления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...