Поиск хранилища данных для связанных тем по ключевому слову - PullRequest
7 голосов
/ 23 марта 2009

Например, как StackOverflow решает, что другие вопросы похожи?

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

Какая техника используется для поиска похожих вопросов?

Ответы [ 4 ]

3 голосов
/ 23 марта 2009

20 марта я получил письмо от team@stackoverflow.com, в котором упоминается, как оно работает:

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

Последнее предложение относится к строке поиска, которая, на мой взгляд, менее полезна, когда я пытаюсь найти конкретный вопрос, который уже видел.

1 голос
/ 23 марта 2009

Плохо - я использую полнотекстовый поиск MS SQL. Вам больше повезет с использованием Lucene, IMO. Дополнительную информацию об этой теме см. В статье Википедии о Lucene или общей теме поиска информации .

1 голос
/ 23 марта 2009

Соответствующая программа будет хранить индекс всех вопросов. Когда вы задаете вопрос, все ключевые слова в вашем вопросе сопоставляются с индексом. Это похоже на поиск Google. Lucene поиск с открытым исходным кодом может быть (и с большой вероятностью) использован для этого. Поскольку результаты не совсем точны, я предполагаю, что они приводят только заголовки вопросов в качестве приблизительного значения.

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

1 голос
/ 23 марта 2009

Я думаю, что это просто старое совпадение слов. Однако я могу добавить, что эта функция работает не так хорошо, как хотелось бы. Гораздо лучше выполнить поиск в Google с префиксом site: stackoverflow.com, чем полагаться на SO для предоставления соответствующих предложений.

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