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

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

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

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

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

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

Дополнение выборки

Работа с текстом всегда требует определенного языкового обеспечения. В частности, при поиске в русском тексте к безусловно необходимым относится словоизменительный словарь, позволяющий учесть различные морфологические формы известных слов и генерировать гипотезы для слов, не вошедших в словарь. Классический труд Андрея Анатолиевича Зализняка[Зализняк А. А. Грамматический словарь русского языка: Словоизменение. Ок. 110 000 тыс. слов. – 4-е изд., испр. и доп. – М.: «Русские словари», 2003] в полной мере удовлетворяет эти потребности. Определенную пользу может принести и фразеологический словарь. Иногда применяются и словари синонимов. Однако этого недостаточно.

То обстоятельство, что вместо поиска информационных объектов (образов) приходится довольствоваться поиском слов, не могло не вызвать ответную реакцию в виде многочисленных попыток компенсировать «ущербность» такого подхода. Их общее название – «интеллектуализация» традиционного поиска (не путать с собственно интеллектуальным поиском, то есть поиском по смыслу содержащейся в документе информации).

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

В этом легко убедиться, посмотрев на wordstat.yandex.ru, какие запросы делают Яндексу.

«Естественный» запрос: +как работает фотошоп – 189 показов в месяц.

«Командный» запрос: уроки фотошоп – 3469 показов в месяц; учебник фотошоп – 673 показа в месяц и т. д.

«Естественный» запрос: +как проехать +в шереметьево – 106 показов в месяц.

«Командный» запрос: шереметьево проезд – 546 показов в месяц; шереметьево добраться – 470 показов в месяц; шереметьево доехать – 409 показов в месяц и т. д.

Даже в поисковой системе Ask Jeeves, изначально позиционировавшей себя как искалка, которая понимает запросы на естественном языке, доля коротких запросов на «командном» языке недавно превысила долю запросов на естественном языке. Вторая причина – ориентация «интеллектуального» поиска на грамотный русский язык. Веб – социальное, а не лингвистическое явление, и для общения в Сети вместо естественного русского языка часто используется жаргон, короткие предложения, ссылки вместо цитат и т. д., что не может учесть ни один словарь, даже во 2-м исправленном издании.

Но не строит думать, будто все наработки филологов бесполезны в веб-поиске. Конечно, это не так. Например, Яндекс делает синтаксический анализ запроса, чтобы определить, какие слова связаны между собой, и задать требования к расстоянию между словами. Знание словарной формы слов позволяет лучше исправлять опечатки, а учет морфологии улучшает полноту результатов поиска.

Александр Садовский,

руководитель отдела веб-поиска компании «Яндекс»

Интеллектуализация поиска

На практике «интеллектуализация» поиска (ИП) означает использование дополнительных, по отношению к запросу пользователя, данных: тезаурусов, синонимов, сведений из различных предметных областей и т. п. Здесь требуется известная осторожность, так как порой случается, что «интеллектуализация», основанная на самой верной логике, тем не менее ведет к ухудшениям.

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