logo
Базы знаний интелл

9.3.1. Машины поиска

Пространство WWW уже сегодня содержит огромное количество HTML-документов, причем не только тексты, но и графику, видео, звук и т. д. Гипертекстовые связи между Web-документами и/или их частями отражают отношения между отдельными информационными фрагментами, представленными в сети. Броузеры, поддерживающие HTML-стандарты, обеспечивают представление материалов пользователям и навигацию по ссылкам для доступа к документам, распределенным по сети. Однако поиск информации в настоящее время поддержан существенно слабее и в большинстве случаев базируется на использовании ключевых слов и ограниченного числа типов машин поиска.

Машины поиска, по-видимому, являются в Интернете самым распространенным и доступным ресурсом для извлечения информации. При этом, как правило, используются два типа сетевых роботов: спайдеры (spiders) и индексы (indexes). Слайдеры, иногда называемые также ботами (bots, от робот-robots),,перемещаются по Web от сайта к сайту. Некоторые из них перемещаются от сервера к серверу беспорядочно, другие используют приоритеты, такие, например, как посещаемость сайта. Оказавшись на сайте, слайдер посылает отчет поисковой машине и продолжает индексирование. Индексы используются для ускорения поиска и сбора информации. Некоторые поисковые механизмы индексируют содержание страниц полностью, другие — только отдельные их части, такие, например, как заголовки документов.

Основными характеристиками машин поиска являются язык запросов пользователя, представление исходных и выходных документов, время индексации и поиска, объем индекса. Существенной характеристикой машин поиска является также качество представления результатов. Наиболее популярные поисковые машины в настоящее время — AltaVista (http://www.altavista.com и/или http: //altavista.ru), Exite (http://www.excite.com), Infoseek (http://www.infoseek. com), Lycos (http://www.lycos.com), WebCrawler (http://www.webcrawler. com), Yahoo! (http://www.yahoo.com) и некоторые другие. Примером полнотекстовой системы поиска с учетом морфологии русского языка является система Яndeх (http://www.yandex.ru). Сравнительный анализ достоинств и недостатков машин поиска можно найти в работе [CompTek, 2000a], а русскоязычных машин поиска — в работе [CompTek, 2000b].

Как правило, поисковые машины обеспечивают интерфейс типа меню, с помощью которого пользователь может скомпоновать запрос на поиск информации, используя ключевые слова и/или фразы и логические связки И-ИЛИ-НЕ. Большинство машин поиска находят огромное количество «релевантных» 'страниц по запросу пользователя. Каждый найденный документ обычно ранжируется по степени его корреляции с запросом. Релевантность каждого документа оценивается с помощью различных технологий, например учета частоты появления на странице искомых слов. Некоторые поисковые механизмы используют дополнительно другие факторы, такие как частота посещения страницы и/или близость расположения друг к другу искомых терминов.

Типичную организацию машин поиска можно рассмотреть на примере системы WebCrawler (рис. 9.6), разработанной в университете Вашингтон (Сиэтл, США).

Рис. 9.6. Общая архитектура системы WebCrawler

WebCrawler начинает процесс поиска новых сайтов с известных ему документов и переходит по ссылкам на другие страницы. Он рассматривает сетевое пространство как ориентированный граф и использует алгоритм обхода графа, работая в следующем цикле [Cheong, 1996J:

• найти новый документ;

• отметить документ как извлеченный;

• расшифровать ссылки с этого документа;

• проиндексировать содержание документа.

Поисковый механизм работает в двух режимах: поиск документов в реальном времени и индексирование документов.

Этим сервисом определяется, какие документы и какие типы документов нужно найти и извлечь из сети. Звуковые файлы, картинки, двоичные файлы и т. п. — не извлекаются. Ошибочно извлеченные файлы будут проигнорированы на стадии индексирования. В режиме индексирования система строит индекс информации из найденных документов, в режиме поиска — находит документы, максимально соответствующие запросу пользователя.

Агенты в системе WebCrawler отвечают за извлечение документов из сети. Для выполнения этой работы поисковый механизм находит свободного агента и передает ему задание на поиск. Агент приступает к работе и возвращает либо содержание документа, либо объяснение, почему данный документ нельзя доставить. Агенты запускаются как отдельные процессы, что позволяет изолировать основной процесс работы системы от ошибок и проблем с памятью. Одновременно используется до 15 агентов.

В базе данных хранятся метаданные документов, связи между документами, полнотекстовый индекс, другая служебная информация. База обновляется каждый раз, когда поступает новый документ. Для отсечения семантически незначимых слов используется стоп-словарь, словам из документа приписывается вес, равный частоте их появления в данном тексте, деленной на частоту появления слова в ссылках на другие документы. Такой индекс позволяет быстро находить по заданному слову ссылки на документы его содержащие. Целиком URL (ссылки на документы в сети) не запоминаются. Вместо этого вся нужная информация помещается в специальные объекты. Каждый объект запоминается в отдельном В-дереве: документы — в одном, серверы — в другом, а ссылки — в третьем. Такое разделение данных позволяет быстро определить неиспользуемые или часто используемые серверы.

Аналогичным образом устроены и другие машины поиска. Характеризуя их в целом, можно отметить, что это глобальные поисковые механизмы, охватывающие до 90 % ресурсов Интернета. Они не могут настраиваться на предпочтения пользователя и не имеют средств анализа информации, а их сетевым роботам становится все труднее справляться с постоянным ростом ресурсов Интернета. Главной задачей машин поиска, по сути, является индексация ресурсов глобальной сети, а также поддержка и расширение соответствующих баз данный. Фактически в базах данных машин поиска хранится информация о том, где и что лежит в сети. Поэтому можно считать, что существующие машины поиска обеспечивают низкоуровневый сервис для клиентских поисковых программ более высокого уровня.