Выбрать главу

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

Качество работы поисковой системы напрямую зависит от качества основных моделей, положенных в основу поисковых алгоритмов (технических нюансов, связанных с работой серверов, активностью роботов и т. д., мы касаться не будем). Структура документа, в общем случае, крайне неоднородна и сложна. Это может навести на мысль, что и модель документа тоже является, скажем так, непростой. На самом деле, в существующих поисковых системах используются предельно упрощенные модели документа. Максимально простой в системном анализе является модель «черного ящика», то есть автономной системы, обособленной от внешней среды, с входами и выходами. В нашем случае на входе — текст, на выходе — список всех слов текста, не входящих в стоп-лист. Вот и вся модель. Понятно, что и функциональные потенции такого модельного описания тоже достаточно ограничены.

Объект, в который воплощена модель документа, называется поисковым образом документа. Для модели «черного» ящика — это тот же список ключевых слов, или вектор, если использовать понятия векторной алгебры. Размерность такого вектора, естественно, совпадает с числом ключевых слов (терминов), представляющих документ. Если значимость разных терминов считается различной, то им приписываются соответствующие веса. Принцип здесь простой: чем большей считается значимость термина, тем больший вес ему приписывается. Само же вычисление веса опирается на достаточно произвольные эмпирические конструкции, выбор которых остается за разработчиком. Как строится поисковый индекс, когда документ моделируется «черным ящиком», в общем-то очевидно: каждому документу, до которого может «дотянуться» сервис, ставится в соответствие его поисковый образ. Полученное таким образом множество векторов вместе с адресной информацией и составляют основу индекса поисковой системы.

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

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

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