Вообще говоря, релевантность объявления можно прослеживать по структуре самого сайта объявлений. Ибо там есть рубрикатор, система модерации и они сами следят за релевантностью.
Кроме того, если речь идёт, как я понял, о серьёзном сайте, то помимо поиска "в лоб" по ключевой фразе у них везде есть поиск по фильтрам. И фильтры разные в зависимости от рубрики объявлений.
Вот значения этих фильтров и используйте для определения релевантности запросу.
Помимо фильтров у объявлений есть также поля, определяющие геозону (можно указать и в фильтре поиска), что также позволит воссоздать структуру геозона->объявление относящееся к этой геозоне при разборе скаченных данных.
Если ваш парсер это делать не умеет, и ищет объявления "в лоб" по ключевым словам, то это проблема вашего парсера и нужно его усовершенствовать.
Потому что в противном случае, у вас стоит задача понять о чем текст объявления и относится ли он к ключевой фразе, при этом, — как-то ранжировать объявления по релевантности. Задача сравнимая по сложности с задачами полноценной поисковый системы, усложнённая ещё и тем, что объявления не есть качественный контент легко поддающийся семантическому анализу, если брать единое поля текста объявления без поисковых фильтров, рубрикатора и отдельных полей самого объявления. Думаю, сделав умный парсер можно с большой вероятностью избавиться от необходимости создания маленького яндекса. Если же всё-таки хочется поизвращаться: есть готовые библиотеки для семантического анализа (некоторые работают даже с кириллицей). Встречал такие, написанные на языке С. Поищите.
На php подобными развлечениями заниматься не советую. (Отредактировано автором: 13 Ноября, 2013 - 09:06:14)
|