Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Анализ данных. Поисковая выдача
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Анализ данных. Поисковая выдача

Страниц (1): [1]
 

1. mikeles - 12 Ноября, 2013 - 19:51:51 - перейти к сообщению
Делаю парсер одного сайта известного с объявлениями.

Входные данные такие:
Задаем "поисковые фразы" которые подставляются ботом в поиск сайта, далее всю выдачу забираем к себе.
И так по каждой фразе.
На данный момент есть "черный список" куда записывает слова(фразы) в объявлении, если встречаются в объявлении, то объявление в игнор. Объявления в игноре больше не парсятся(дубли).
Только таким образом происходит фильтрация, естесвенно попадает много мусора, и все почти объявления вручную обрабатываются.
Есть "избранное" куда попадают объявы понравившееся.

Вообщем задача состоит в том, что нужно максимально классифицировать "Фразы" и понять что нужно пользователю, какое именно объявление "целевое". Какой план:
1. Классифицировать объявления по фразам
2. Если объявление добавляется в "избранное", то выбираем из него ключевики, сопоставляем с классификацией фраз(уточняем критерий выбора)

Вопрос, какие варианты есть по определению релевантности "фраз" к целевому объявлению. Кто сталкивался?
2. Zuldek - 13 Ноября, 2013 - 08:59:51 - перейти к сообщению
Вообще говоря, релевантность объявления можно прослеживать по структуре самого сайта объявлений. Ибо там есть рубрикатор, система модерации и они сами следят за релевантностью.
Кроме того, если речь идёт, как я понял, о серьёзном сайте, то помимо поиска "в лоб" по ключевой фразе у них везде есть поиск по фильтрам. И фильтры разные в зависимости от рубрики объявлений.
Вот значения этих фильтров и используйте для определения релевантности запросу.
Помимо фильтров у объявлений есть также поля, определяющие геозону (можно указать и в фильтре поиска), что также позволит воссоздать структуру геозона->объявление относящееся к этой геозоне при разборе скаченных данных.

Если ваш парсер это делать не умеет, и ищет объявления "в лоб" по ключевым словам, то это проблема вашего парсера и нужно его усовершенствовать.

Потому что в противном случае, у вас стоит задача понять о чем текст объявления и относится ли он к ключевой фразе, при этом, — как-то ранжировать объявления по релевантности. Задача сравнимая по сложности с задачами полноценной поисковый системы, усложнённая ещё и тем, что объявления не есть качественный контент легко поддающийся семантическому анализу, если брать единое поля текста объявления без поисковых фильтров, рубрикатора и отдельных полей самого объявления. Думаю, сделав умный парсер можно с большой вероятностью избавиться от необходимости создания маленького яндекса. Если же всё-таки хочется поизвращаться: есть готовые библиотеки для семантического анализа (некоторые работают даже с кириллицей). Встречал такие, написанные на языке С. Поищите.
На php подобными развлечениями заниматься не советую.
3. mikeles - 14 Ноября, 2013 - 00:57:59 - перейти к сообщению
Спасибо за ответ. Немного не то.
Релевантность рассчитывается на основе семантики запроса.
А здесь имеется в виду самообучаемая модель. Т.е. нужно бота обучать, подходит по смыслу это объявление или нет.
Обучать должен пользователь, добавляя фразы и отмечая избранные объявления.
Фильтрами такое не отработаешь. И тем более часто выставляют параметры объякта одни, а содержание объвления, совсем другое.
Даже уже приколы есть в интернете...

Скорее вот это нашел:

http://ru[dot]wikipedia[dot]org/wiki/%D0[dot][dot][dot]0%B0%D0%BC%D0%B0

 

Powered by ExBB FM 1.0 RC1