2011-12-29 4 views
2

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

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

ответ

1

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

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

+1

Спасибо за помощь tkcsam. Это отвечает на мой вопрос. Если бы я знал, как отмечать вопросы как решаемые, я определенно был бы в этом случае! – Salmontres

+1

Нажмите зеленую галочку;) – tier1

1

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

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

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

+1

Это отличная идея, Осман! Это звучит немного тяжело для того, что я хотел сделать, но это дало мне отличные идеи, спасибо! – Salmontres

Смежные вопросы