Научная статья на тему 'Алгоритмы и принципы работы поисковых интернет-машин'

Алгоритмы и принципы работы поисковых интернет-машин Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
493
91
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Иванова О. В., Иванов П. В., Смелов М. Н.

По мере повышения требований к эффективности работы поисковых систем с большим объемом разнородного информационного потока появляется необходимость качественно расширить рамки применения технологических платформ и поисковых инструментов корпоративного и индивидуального уровня для совершенствования сбора и обработки информации.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Алгоритмы и принципы работы поисковых интернет-машин»

16 декабря 2011 r. 18:01

Т-Сотт #10-2010 (Технологии информационного общества)

Алгоритмы и принципы работы поисковых интернет-машин

По мере повышения требований к эффективности работы поисковых систем с большим объемом разнородного информационного потока появляется необходимость качественно расширить рамки применения технологических платформ и поисковых инструментов корпоративного и индивидуальном уровня для совершенствования ( бора и обработки информации.

Иванова О. В., Иванов П.В., Смслов М.Н.

Актуальным является реализация многофункциональных решений на основе масштабирования и производительности поисковой платформы с возможностью сортировки и поиска миллиардов унифицированных и хорошо структурированных документов, так и неструктурированных данных, с расширенными лингвистическими опциями поиска и улучшенной их обработкой, так как на второй план отходят система поиска (Microsoft Office SharcPoint Server (MOSS)), которая не справляется с репозиториями, число документов в которых превышает 50 млн.

Задачей этого уровня является представление бизнес-информации конечным пользователям, а также расширение возможностей по взаимодействию с системой. Основными требованиями к этому уровню являются богатый интерфейс и сервис представления данных в различном виде. Логика, используемая для доступа к данным, должна обеспечивать методы для .запроса к данным и их обновления. Но данным Фонда «Общественное мнение» на конец 2009 года месячная аудитория (россияне, которые хотя бы раз за месяц использовали Интернет) Рунета составляет 39.7 млн. человек в возрасте 18 лет и старше. Целевая аудитория (люди, использующие Интернет по работе, с медленным каналом или ограниченным трафиком, а также профессиональные маркетологи, исследователи рынков н маркетинговые предприятия, тесно связанные с Интернетом) составляет 0,5% от всех пользователей Рунета, то есть 198.5 тыс. человек.

Информационный поиск - это отрасль знания, которая занимается представлением, хранением и доступом к информационным ресурсам, и по мере их роста, потенциально доступного потребителю, были выработаны вес более совершенные интерфейсы поисковых средств и приемов, которые позволяют получить необходимые данные. Сейчас это ведет к тому, что информациоино-поисковыс системы (ИИС) вынуждены наращивать свою вычислительную мощность пропорционально росту количества документов в Сети, то есть экспоненциально. Так, в Google сейчас работает более 100 компьютеров -серверов.

Поисковый процесс может быть представлен четырьмя стадиями: формулировка (происходит до начала поиска); действие (начинающийся поиск); обзор результатов (результат, который пользователь видит после поиска); усовершенствование (после обзора результатов и перед возвращением к поиску с иной формулировкой той же потребности).

Более удобная нелинейная схема поиска информации состоит из следующих этапов:

- фиксация информационной потребности на естественном языке;

- выбор нужных поисковых сервисов сети и точная формализация записи информационной потребности на конкретных информационно-поисковых языках (ИПЯ);

- выполнение созданных запросов;

- предварительная обработка и выборка

полученных списков ссылок на документы;

- обращение по выбранным адресам за искомыми документами;

- предварительный просмотр содержимого

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

- сохранение релевантных документов для последующего изучения;

- извлечение из релевантных документов ссылок для расширения запроса;

- изучение всего массива сохраненных

документов;

- если информационная потребность не

полностью удовлетворена, то возврат к первому этапу.

Современная поисковая система может быть представлена в виде трехуровневой архитектуры, которая включает в себя следующие элементы:

- crawler (сборщик) - осуществляет сканирование Интернет ресурсов в поисках изменений на страницах;

- indexer (индексатор) - индексирует ресурсы, строит базы данных по ключевым словам, хранит эти базы данных в виде, удобном для поиска по ним;

- gateway (шлюз) - осуществляет прием запросов от пользователей и выдачу им информации из базы данных.

Увеличение объема информации и количества запросов. в свою очередь, приводит к повышению требований к скорости работы поисковых машин, качеству поиска и наглядности представления результатов. Для того, чтобы ответы на эти вопросы оставались хоть немного удовлетворительными, разработчики поисковых машин постоянно совершенствуют алгоритмы и принципы поиска, добавляют новые функции, ускоряют работу системы. После того, как все части информации обработаны, начинается объединение (слияние) результатов. Благодаря тому, что частичные индексные базы и основная база, к которой обращается поисковая машина, имеют одинаковый формат, процедура слияния является простой и быстрой операцией, не требующей никаких дополнительных модификаций частичных индексов. Основная база участвует в анализе как одна из частей нового индекса.

Сборка единой базы из частичных индексных баз представляет собой простой и быстрый процесс. Сопос-

60

тавлсние страниц не требует никакой интеллектуальной обработки и происходит со скоростью чтения данных с диска. Если информации, которая генерируется на ма-шинах-иидсксаторах, получается слишком много, то процедура «сливания» частей проходит за несколько этапов. Вначале частичные индексы объединяются в несколько промежуточных баз, а затем промежуточные базы и основная база предыдущей редакции пересекаются, Таких этапов может быть сколько угодно. Промежуточные базы могут сливаться в другие промежуточные базы, а уже потом объединяться окончательно. Поэтапная работа незначительно замедляет формирование единого индекса и не отражается на качестве результатов.

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

Решение проблем текстового поиска опирается на эффективную реализацию используемых лингвистических моделей. Традиционный подход в подобных случаях - сравнение с «эталонным» результатом, в контексте задач поиска плохо применим из-за невозможности построения эталонного ответа, зависимости от конкретного набора данных и поискового задания.

В качестве решения этой проблемы мировое научное сообщество рекомендует использовать для оценки широко доступные наборы данных. В мире существует ряд таких международных форумов по оценке методов информационного поиска - I RIX', CLEF, NTCIR, DUC, SUMMAC. TDT. MUC.

В ряде случаев бизнес-процессом компании ставится задача спроектировать персональную систему тематического поиска по заданному направлению, что открывает возможность работы системы при отсутствии постоянного соединения персонального компьютера пользователя с глобальной сетью Интернет.

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

Система начинает работу с того момента, как мы вводим адрес сайта (вида: http://www.address.ru) в приветственном окне, при этом общее количество сайтов, которые можно занести в систему для обработки, ограничено только желанием пользователя и объемом его жесткого диска.

Система собирает список ссылок с этого сайта с учетом домена: открывает indcx.html или любую другую начальную страницу, привязанную к домену, со всех тегов типа «<а hrcf-"...”>» копирует тело ссылки и проверяет. есть ли уже в базе данных такой адрес по отношению к данному сайту. Если есть, то увеличивает рейтинг повторяемости конкретной ссылки, если нет, то

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

В зависимости от настроек может быть найдена ссылка, ведущая на другой сайт. В случае если она игнорируется. то создастся в таблице «Сайты» новый адрес с пометкой «auto_add». когда пользователь сам добавляет сайт через интерфейс системы, а метка записи имеет следующий вид: «u.ser_add», или производится добавление нового адреса в список не утвержденных сайтов.

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

Сканирование ссылок производится с заданной пользователем периодичностью (каждый час, день, неделю, только при наличии подключения к сети Интернет, только вручную по желанию пользователя). Для каждой скопированной ссылки в таблице «Ссылки» значение «Скопировано ли?» меняется с 0 на I. Также в таблице «Физические ссылки» есть поле, в котором указывается дата копирования страницы, что позволяет программе следить за своевременным обновлением информации в соответствии с установленными пользователем настройками. Но прошествии указанного времени система меняет значение «Скопировано ли?» ссылки в таблице «Ссылки» с I обратно на 0. Таким образом, поток, отвечающий за копирование страниц снова обязан скопировать данные по ссылке и обновить дату в соответствии со временем копирования.

Важной особенностью, которая повышает значимость поисковой системы для пользователей, имеющих постоянный доступ к сети Интернет и часто посещающих определенные сайты, является возможность оповещения пользователя об изменениях на порталах, которые он указал. Если поток, отвечающий за сканирование ссылок, отбор и добавление новых, при повторном сканировании уже добавленных страниц обнаруживает на них новые ссылки, добавляет их в список обновлений с оповещением пользователя и в таблицу «Ссылки».

Соответственно, пользователь получает оповещения только о значительных изменениях, поэтому, например, столь малые правки, как исправленные орфографические ошибки, коррекция текста и т. п.. не будут отвлекать пользователя оповещениями.

После того, как ссылка добавляется в таблицу «Физические ссылки», страница, расположенная по ней, готова быть проиндексированной. Основная цель процесса индексирования - поставить в соответствие каждому документу некоторое множество ключевых слов, отражающих содержание документа. Ключевые слова называются также идентификаторами, нндексационны-мн терминами, дескрипторами, понятиями. Ключевые слова управляют поиском, приводя в результате к тем

61

документам, термины которых оказываются наиболее сходными с терминами запроса. Результатом индексирования является поисковый образ документа, который представляет документ в ИПС.

В процессе индексации поисковая машина собирает все значимые слова, содержащиеся в смысловых частях страницы, и сопоставляет каждое из них с таблицей «Индекс». В этой таблице каждому значимому слову присваивается некоторое числовое значение, которое в дальнейшем помогает ускорить процесс обработки запроса и вывода информации для конечного пользователя, это значение и называется индексом. Если в таблице «Индекс» уже есть такое слово, то программа берет его индекс для дальнейшей работы, если слова нет, то оно добавляется в таблицу, и ему присваивается свой индекс.

Получив индекс слова, система записывает его в таблицу «Основная» вместе с 1(1 ссылки, по которой находится слово, местом его на странице, и его рейтингом, необходимым для релевантного результата по заданному запросу.

Как индексация слов с конкретной страницы подходит к концу, ее метка индексации в таблице «Физические ссылки» меняется с 0 на 1. В случае обновления самой страницы потоком, отвечающим за сохранение страниц, метка снова принимает значение 0, чтобы обновленная страница прошла повторное индексирование. При повторном индексировании в таблице «Основная» удаляются все строки, соответствующие обновленной странице и записываются новые данные на основе повторного индексирования. Такой подход обусловлен тем, что место на носителе пользователя ограничено, и многоразовое дублирование данных с одной и той же страницы отрицательно влияет па релевантность результатов. Поскольку даже малейшее исправление в тексте страницы способно вызвать полный сдвиг расположения элементов внутри страницы, что приведет к несовпадению уже существующих позиций и невозможности дифференциации старых и новых индексов.

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

Расположение слова внутри страницы определяется количеством символов от начала страницы до начала конкретного слова. Таким образом, чем глубже внутри страницы находится слово, тем больше символов будет между ним и началом страницы. Данная переменная не принимает нулевых значений, потому что его минимальное значение равно 1.

Счетчик количества повторений слова работает по принципу сложения всех строк таблицы «Основная», где данному индексу слова соответствует конкретный 1с1 ссылки. Скалы® строк, удовлетворяющих этому условию будет найдено, столько повторении слова на странице и будет указано.

Чтобы количество повторений не играло крупную роль в определении релевантности, устанавливается коэффициент, равный 0.1 с целью уменьшения веса данного значения по отношению к остальным элементам. Чем больше страниц и порталов ссылается на конкретную страницу, тем выше ее рейтинг, поскольку ссылка на нее дает дополнительный плюс благодаря доверию авторов тех самых порталов. Счетчик ссылаемости работает во время сканирования документов на предмет наличия ссылок и добавления их в таблицу «Ссылки». Когда программа находит адрес, уже внесенный в таблицу, она увеличивает счетчик ссылаемости в таблице на конкретную страницу.

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

Расстояние между двумя словами на одной странице считается путем абсолютного вычитания расположения одного слова из расположения другого. В случае, если это значение равно 0 (например, когда введено дважды одинаковое слово, например «шаг шаг» и система находит его дважды в одном и том же месте) формула не рассчитывается, потому что результат считается неверным и исключается из выборки.

В любом запросе учитывается количество слов, введенных пользователем. Из фразы для выборки системой исключаются короткие слова из одной, двух букв, типа предлогов и союзов, запятые и знаки препинания. Помимо этого, существуют специфические слова, типа С#, С++, Asp.net и др., состоящие из знаков препинания или других символов и букв, которые необходимо выделять отдельно, для чего предусмотрен специальный файл в системе. Такой подход сделан для ускорения процесса выборки и экономии времени пользователя, ожидающего результат.

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

I Вн ш.нш 1.Д. Архитектура, методы и средства Интернет-технологий. - М.: Красаил, 2009. - 512 с.

2. Информационные системы и базы данных: организация и проектирование : учебное пособие / В. Ю. Пирогов. - СПб.: БХВ-Петербург. 2009. - 52* с.

3. http://company.yandex.ru. Статистические данные компании Яндекс. Москва 2010.

4. http://www.searchengines.nl. "Энциклопедия поисковых систем.

Ли I ера гура

62

i Надоели баннеры? Вы всегда можете отключить рекламу.