Особенности проектирования сетевых роботов

advertisement
Особенности проектирования сетевых роботов
на основе нечетких запросов
Атанов С.К., к.т.н., доцент кафедры компьютерные системы
Казахского агротехнического университета им. С.Сейфуллина
Резюме
Для поиска информации в сети Интернет ползователями применяются сетевые
программные роботы. Использование алгоритмов нечеткой логики при их
проектировании позволит повысить эффективность работы.
The resume
Network program robots are applied to information search in a network the Internet. Use
of algorithms of indistinct logic at their designing will allow to raise an overall performance.
Түйін
Көбіне қолданушылар интернеттен ақпапатты іздегенде желілік программалы
роботы пайдалануды ұсынамын. Осы программалар бұлдыр логика алгаритимі бойынша
құрастылылса осы робыттардың сапасы жақсарады және интернеттен ізделінген
ақпараттар толықтау болады және деңгейі әсерлене түседі.
Развитие сети Интернет в последние годы повысило возможности исследователей,
нуждающихся в информационных ресурсах для практической и научной работы.
Интернет предоставил большим группам специалистов огромные массивы текстовых,
графических и мультимедиа-данных. Но при этом обнажилась острая проблема: объем
поставляемой в Сеть информации значительно превышает существующие возможности по
ее надлежащей обработке.
Для сканирования сети Интернет применяются специальные сетевые роботы
(спайдеры). Это программы, которые путем рекурсивного обхода веб-ресурсов по
гиперссылкам считывают содержимое веб-страниц, очищают их от разметки, выделяют
чистый текст, гиперссылки на странице и сохраняют информацию в некую БД. Важный
атрибут спайдера – это применяемая стратегия обхода, то есть критерий выбора
следующего ресурса для посещения из множества уже обнаруженных роботом, но еще не
посещенных ресурсов. Использование при формировании нечетких запросов, основанного
на принципах нечеткой логики [1,2] , позволит наиболее полно охватить информационное
поле в рамах заданной тематики поиска.
Формирование нечетких запросов
Человеку свойственно оперировать нечеткими значениями. Более того, психологи
установили, что в человеческом мозге почти вся числовая информация вербально
перекодируется и хранится в виде лингвистических переменных. Нечеткие запросы одна
из попыток оперировать неточными данными:


просмотр небольших заметок;
чтение свежих новостей;

покупка недорогого автомобиля.
Под нечетким запросом в базах данных (БД) будем понимать SQL-запрос, в котором
в предложении WHERE используются нечеткие (fuzzy) величины. Примеры нечетких
величин (значений): высокий, холодный, более-менее красивый, почти кипящий, скучный и
т.д. Такой запрос будем называть нечетким SQL-запросом (fuzzySQL, FSQL). Сам термин
"fuzzy" так прочно вошел в жизнь, что на многих языках он даже не переводится. Так как
информация в базе данных (БД) хранится в четком виде, нося однозначный характер, то в
нечетком запросе допустимо использовать только те нечеткие величины, которые в
дальнейшем можно представить в виде числа или диапазона чисел. Например, это такие
величины как пожилой, быстро, примерно сорок и т.д. Эти нечеткие величины будут
задаваться нечеткими множествами (НМ). Идея преобразования нечеткого SQL в четкий
(стандартный) также не нова. Чаще всего это воплощается в отдельное независимое
графическое пользовательское приложение [9,10] или конструктор (Wizard) нечетких
запросов [11,12], представляющие интерес, наверное, только для самих разработчиков.
К недостаткам этих приложение можно отнести:



крайне ограничен круг их применения, и для Web в частности;
убогая функциональность: поддержка только AND-связки, отсутствие
возможности группировки выражений, чрезмерная громоздкость конструкторов
запросов, чрезмерная многословность описания нечеткого запроса, отсутствие
возможности переопределить служебные символы в запросе;
закрытый исходный код — невозможно проследить работу приложения,
откорректировать код под свои предпочтения.
До сих пор не было сказано, для какой РСУБД приемлем вышеописанный алгоритм.
По большому счету для большинства имеющихся, поддерживающих базовый синтаксис
SQL [3]. Для реализации выбрана связка PHP+MySQL, как одна из наиболее
распространенных среди хостинг-сервисов [4,5] .
Листинг 1 иллюстрирует выполнение нечеткого запроса к РСУБД MySQL.
Листинг 1
<?php
// Подключение библиотек
require_once('lib/mysql.class.php');
require_once('lib/mf.class.php');
require_once('lib/fuzzy1.class.php');
/*----- Формирование нечеткого SQL -----*/
// новый объект
$fuzzy = new Fuzzy;
// формирование нечеткого SQL
$fsql = '
SELECT *
FROM student
WHERE
knowledge ~ high -- высокий средний балл
AND
absences ~ small -- мало прогулов
';
// задание нечетких переменных
$fuzzy->setVar('high', array(3,5), 'gbell', array(4.75, 1, 3.6));
$fuzzy->setVar('small', array(0,10), 'gbell', array(11, 4.5, -10));
/*----- Задание нечеткого SQL -----*/
$fuzzy->setFSQL($fsql);
/*----- Преобразование нечеткого SQL в стандартній SQL -----*/
$sql = $fuzzy->getSQL();
/*----- Запрос к СУБД на основе сформированного стандартного SQL -----*/
$mysql = new mysql;
$mysql->connect();
/*----- Получение результата запроса к СУБД -----*/
$result = $mysql->select($sql); // массив
/*----- Расчет ИСЗ для каждой позиции результата. Сортировка -----*/
$result = $fuzzy->genQCIX($result);
/*----- Вывод на экран в читабельном виде результата запроса -----*/
printf('<pre>%s</pre>', $mysql->printToScreen($result));
?>
Как видно, процесс запроса полностью прозрачен для пользователя, как и структура
кода. Подробные комментарии даны непосредственно в коде библиотеки, поэтому
приводить их здесь излишне.
Архитектура поискового сетевого робота
Критерий выбора определяется задачей робота и, следовательно, ранжирование
ссылок в очереди спайдера должно опираться на оценку потенциальной релевантности
конкретного URL адреса для системы.
Перед поисковыми роботами стоят две задачи:
 индексирование веб-ресурсов каталога (известных системе ресурсов);
 индексирование веб-страниц на ресурсах вне каталога (неизвестных).
Первую задачу в модуле пополнения коллекции решает спайдер каталога, а вторую
– поисковые спайдеры. Спайдер каталога, в качестве стартовых адресов, принимает адреса
главных страниц веб-ресурсов из Интернет-каталога.
Спайдер каталога использует простейшую стратегию обхода «в глубину», ссылки
посещаются в том порядке, в каком они были обнаружены на веб-страницах. Поскольку
данные ресурсы считаются априорно релевантными, то и веб-страницы, принадлежащие
им, также считаются “полезными” для системы. Таким образом, спайдер каталога не
выполняет фильтрацию страниц и управление очередью, что повышает его
производительность. Это позволяет чаще переиндексировать каталог и поддерживать
актуальность индекса.
Поисковые спайдеры запускаются от каждой рубрики каталога, имеют задачу сбора
веб-страниц, относящихся к своей рубрике, и в качестве стартовых URL принимают все
внешние ссылки, найденные спайдерами каталога для веб-ресурсов из этой рубрики, это и
определяет его архитектуру (рис.1). Поисковый спайдер имеет специализированную
стратегию обхода, основанную на том, что каждый URL в очереди непосещенных ссылок
принимает оценку, заключающуюся в его потенциальной полезности для рубрики, в
рамках которой работает робот. Оценки постоянно пересчитываются под влиянием новых
документов, посещаемых спайдером, а очередь ранжируется в порядке убывания оценок.
То есть, спайдер в первую очередь посещает страницы с максимальной оценкой
релевантности для рубрики.
Интернет
Модуль скачивания
веб-страниц
Создание профайла
веб-страницы
Коллекция веб-страниц
Модуль оценки
релевантности
Фильтр и
рубрикатор
коллекции
Посещенные URL
Непосещенные URL
Модуль
переиндексирования
Управление
очередью
Рис. 1. Архитектура поискового сетевого робота (спайдера)
Поисковый спайдер выполняет грубую фильтрацию веб-документов, поскольку
применение сложных фильтров существенно снизит производительность робота и всего
модуля в целом. Окончательная фильтрация веб-страниц осуществляется рубрикатором на
входе в коллекцию, а оценка робота рассматривается как рекомендация.
Оценка релевантности страницы основана на вычислении расстояний в рамках
векторной модели информационного поиска. Робот получает тематический фильтр, а
каждая посещаемая им веб-страница представляется профайлом. Тематический фильтр
представляет собой вектор пар (t, Wt): термов t и их значимости в рамках рубрики, от
которой запускается спайдер Wt. Профайл также представляется вектором пар (t, Ft,p):
термов t и частот их использования на странице Ft,p. Оценка релевантности
рассматриваемой веб-страницы к заданной рубрике определяется по формуле
R( p)   Ft , p  Wt . Документ считается релевантным, если оценка превышает порог
t
рекомендации L, т.е. R ( p )  L .
Фильтр, которым обладает спайдер, может уточняться под влиянием более точных
оценок, которые формирует рубрикатор на входе в коллекцию. Для этого применяется
механизм обратной связи между коллекцией и спайдером.
Cтратегия обхода поискового спайдера основана на оценке потенциальной
релеватности URL из очереди непосещенных ссылок, по отношению рубрике. Оценка
базируется на особенностях ссылочной связи в сети Интернет.
 Механизм ссылочной связи ресурсов содержит тематическую связь. Если есть
ссылка со страницы А на страницу В, то значит автор А рекомендует В на
основании ее тематической близости и авторитетности.
 Если страница А имеет ссылку на страницы В и С, то тематика страниц В и С
имеют тенденцию быть схожей, причем их схожесть обратно пропорциональна
близости размещенных на них ссылок на странице А.
Таким образом, оценка URL зависит от релевантности страниц, имеющих с этим
URL ссылочную связь. Очередь непосещенных ссылок постоянно модифицируется под
влиянием информации, которую получает робот из новой посещенной веб-страницы.
Модификация заключается в добавлении в очередь новых, ранее неизвестных роботу
URL, а также пересчете оценок полезности других URL в очереди, имеющих связь с
текущей страницей.
Спайдер каталога
Интернет-каталог
Коллекция веб-страниц
Рубрикатор каталога
Рубрика 1
…
Поисковые спайдеры
…
Рубрика N
Рубрикатор
коллекции
Спайдер 1
…
Спайдер N
Рис. 3. Рубрикация на входе в коллекцию
Для каждого попадающего в коллекцию веб-документа модуль определяет набор
близких к его тематике рубрик (рис. 2). Рубрикация совмещена с фильтрацией. Документ,
не отнесенный ни к одной рубрике, считается нерелевантным и в коллекцию не
включается.
Из анализ существующих методов машинной классификации текстов было
принято решение об использовании вероятностного метода PrTFIDF, являющегося
совершенствованием
наивного
байесовского
классификатора.
Байесовские
классификаторы отличаются очень высокой производительностью, что дает возможность
классифицировать поступающие в систему потоки документов “на лету”. PrTFIDF
обеспечивает приемлемые результаты по точности, хотя и уступает ряду других, более
сложных методов, требующих значительных вычислительных затрат. Также учитывалась
необходимость фильтрации информации, что не позволяет использовать некоторые
методы.
Суть метода заключается в предсказании апостериорной вероятности
принадлежности конкретного документа (представляемого в виде вектора признаков термов), на основании априорных вероятностей принадлежности документа к рубрикам и
статистики термов, характерных для конкретной рубрики. Для определения
апостериорной вероятности применяется формула Байеса. В алгоритме PrTFIDF
применяются несколько отличные от метода Байеса способы аппроксимации вероятностей
отношения документов к рубрикам:

c * (d )  arg max P(ci | d )  arg max
ci C
ci C

wF
P( w | c i )
TF ( w, d )

d
P
 ( w | c' )

.
c 'C
где TF(w,d) – частота вхождения слова w в документ d,
|d| – общее количество слов в документе.
Вероятности рассчитываются отдельно для каждой категории, и принимается
решение, принадлежит документ категории или нет (бинарная классификация). При этом
множество рубрик С сокращается до двух – ci и c i , в которую входят все документы, не
вошедшие в ci .Для вычисления вероятностей используется процесс обучения, во время
которого анализируются заранее классифицированные документы и происходит
вычисление априорных вероятностей, связанных со значимостью термов. Обучение

представляет собой вычисление всех возможных P( w | ci ) на основе обучающей выборки
документов.
Далее происходит разархивирование и определение формата файла(ов) в архиве.
Если данных в архиве не обнаружено, карточка файла удаляется из системы.
“Положительные” карточки сохраняются в системе и становятся доступными для поиска
по аннотационной составляющей. Файлы данных скачиваются с удаленных серверов в
специальную директорию системы. Дополнительно модуль содержит функционал
обнаружения копий файлов данных, чтобы избежать их сохранения в системе в разных
карточках.
Заключение
В работе рассмотрена архитектура сетевого поискового робота, математическая
модель нечеткого запроса и примет ее практической реализации в среде PHP+MySQL, что
позволяет сканировать информационные ресурсы сети Интернет запросами на смысловом
лингвистическом уровне и обеспечивает более полный и эффективный поиск.
1. Заде Л.А. Понятие лингвистической переменной и его применение к принятию
приближенных решений.-М.:Мир, 1976.-165 с.
2. Zadeh L. Fuzzysets // InformationandControl. — 1965. — №8. — P. 338-353.
3. А.Леоненков. Нечеткое моделирование в среде MATLAB и fuzzyTECH. — Спб.:
БХВ-Петербург. 2005. — 736с.
4. FSQL Server http://www.lcc.uma.es/~ppgg/SrvFSQL8.zip.
5. Fuzzy SQL http://scianta.com/pubs/AR-PA-008.htm.
Download