Как работает поисковая система схема. Как работают поисковые системы — сниппеты, алгоритм обратного поиска, индексация страниц и особенности работы Яндекса

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Как работает поисковая система – основные положения

Находить нужную информацию с помощью поисковика умеет любой более-менее опытный интернет-пользователь. Однако лишь немногие знают о том, как работают поисковые системы. Действительно, каким образом Google или Яндекс успевает за считанные доли секунды проанализировать запрос юзера и выбрать наиболее подходящие сайты из миллионов web-проектов, присутствующих в сети?
Чтобы понять принцип работы поисковых систем, нужно познакомиться с такими понятиями, как индексация и формирование выдачи. Фактически, роль поисковика сводится к анализу существующих в сети сайтов и к выводу информации, максимально соответствующей запросам интернет пользователя.

Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

Как работает поисковик – индексация сайтов

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

Совет! Чем чаще обновляется сайт, тем чаще его будут посещать поисковые роботы. Это положительно отразится на индексации.

Формирование релевантной выдачи

Точные принципы работы поисковых систем сохраняются в строгом секрете. Более того – алгоритмы постоянно совершенствуются и изменяются. Однако вполне очевидно, что тематика документа определяется на основании анализа его семантики. Поисковики могут обращать внимание на следующие аспекты:

  • частота употребления ключевых запросов;
  • тематическое соответствие материала основной тематике сайта;
  • наличие синонимов ключевых фраз;
  • присутствие ключей в заголовках, метатегах и т.п.

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

Как работают поисковики – ответ на запрос

На основании заведенного поискового запроса система производит анализ проиндексированных материалов. Затем робот формирует ссылки на сайты, наиболее полно отвечающие запросу юзера. Недавно в принцип работы поисковой системы были внесены некоторые изменения. Теперь роботы формируют выдачу с учетом пользовательских предпочтений.
Поясним на конкретном примере: есть два пользователя, один из которых интересуется кулинарными рецептами, а другой часто заказывает фастфуд на дом. Эти пользователи могут завести одинаковый запрос «вкусная пицца», но поисковик предоставит им ссылки на разные сайты. Первый получит перечень рецептов приготовления пиццы, а второй – адреса ресторанов, специализирующихся на доставке этого блюда.

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

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

Что такое сниппет и принципы работы поисковиков

Но тут сначала нужно будет разобраться, а что такое сниппет, для чего он нужен и почему его содержимое так важно для оптимизатора? В результатах поиска располагается сразу под ссылкой на найденный документ (текст которой берется уже писал):

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

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

Но есть вероятность, что именно содержимое тега Description иногда может быть использовано (особенно в Google) в качестве сниппета. Конечно же, это еще будет зависеть и от того , в выдаче которого он показывается.

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

Поэтому не ленимся и заполняем содержимое тега Description для каждой статьи. В WordPress это можно сделать, если вы используете описанный (а его использовать я вам настоятельно рекомендую).

Если вы фанат Джумлы, то можете воспользоваться этим материалом - .

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

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

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

Как работают поисковые системы в общих чертах

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

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

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

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

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

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

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

Во-вторых, стоит остановиться на алгоритмах (способах) поиска информации в собранной базе документов.

Алгоритмы прямых и обратных индексов

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

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

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

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

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

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

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

Математическая модель используемая для ранжирования

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

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

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

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

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

В базовой векторной модели вес документа по заданному запросу высчитывается исходя из двух основных параметров: частоты, с которой в нем встречается данное слово (TF — term frequency) и тем, насколько редко это слово встречается во всех других страницах коллекции (IDF — inverse document frequency).

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

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

Оценка качества работы формулы асессорами

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

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

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

Основными критериями в оценке качества работы формулы являются:

  1. Точность выдачи поисковой системы — процент релевантных документов (соответствующих запросу). Чем меньше не относящихся к теме запроса вебстраниц (например, дорвеев) будет присутствовать, тем лучше
  2. Полнота поисковой выдачи — процентное отношение соответствующих заданному запросу (релевантных) вебстраниц к общему числу релевантных документов, имеющихся во всей коллекции. Т.е. получается так, что во всей базе документов, которые известны поиску вебстраниц соответствующих заданному запросу будет больше, чем показано в поисковой выдаче. В этом случае можно говорить о неполноте выдаче. Возможно, что часть релевантных страниц попала под фильтр и была, например, принята за дорвеи или же еще какой-нибудь шлак.
  3. Актуальность выдачи — степень соответствия реальной вебстраницы на сайте в интернете тому, что о нем написано в результатах поиска. Например, документ может уже не существовать или быть сильно измененным, но при этом в выдаче по заданному запросу он будет присутствовать, несмотря на его физическое отсутствие по указанному адресу или же на его текущее не соответствие данному запросу. Актуальность выдачи зависит от частоты сканирования поисковыми роботами документов из своей коллекции.

Как Яндекс и Гугл собирают свою коллекцию

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

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

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

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

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

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

Сколько страниц одного сайта Яндекс показывает в выдаче и индексирует

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

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

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

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

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

Поисковики стремятся равномерно индексировать все вебсайты, но зачастую это бывает не просто из-за совершенно разного количества страниц на них (у кого-то десять, а у кого-то десять миллионов). Как быть в этом случае?

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

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

Для ресурсов с доменным именем третьего уровня — от десяти до тридцати тысяч страниц (документов).

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

Поддомены для домена второго уровня могут выглядеть так: JOOMLA.сайт. Количество поддоменов для второго уровня, которое может проиндексировать Яндекс, составляет где-то чуть более 200 (иногда вроде бы и до тысячи), поэтому таким нехитрым способом вы сможете загнать в индекс зеркала рунета несколько миллионов вебстраниц.

Как Яндекс относится к сайтам в не русскоязычных доменных зонах

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

Поэтому, если вы создаете сайт не в доменных зонах, которые он по умолчанию относит к русскоязычным (RU, SU и UA), то ждать быстрой индексации не стоит, т.к. он, скорее всего, его найдет не ранее чем через месяц. Но уже последующая индексация будет происходить с той же частотой, что и в русскоязычных доменных зонах.

Т.е. доменная зона влияет лишь на время, которое пройдет до начала индексации, но не будет влиять в дальнейшем на ее частоту. Кстати, от чего зависит эта частота?

Логика работы поисковых систем по переиндексации страниц сводится примерно к следующему:

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

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

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

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

Удачи вам! До скорых встреч на страницах блога сайт

Вам может быть интересно

Rel Nofollow и Noindex - как закрыть от индексации Яндексом и Гуглом внешние ссылки на сайте
Учет морфология языка и другие проблемы решаемые поисковыми системами, а так же отличие ВЧ, СЧ и НЧ запросов
Траст сайта - что это такое, как его измерить в XTools, что на него влияет и как увеличить авторитетности своего сайта
СЕО терминология, сокращения и жаргон
Релевантность и ранжирование - что это такое и какие факторы влияют на положение сайтов в выдаче Яндекса и Гугла
Какие факторы поисковой оптимизации влияют на продвижение сайта и в какой степени
Поисковая оптимизация текстов - оптимальная частота употребления ключевых слов и его идеальная длина
Контент для сайта - как наполнение уникальным и полезным контентом помогает в современном продвижении сайтов
Мета теги title, description и keywords мешают продвижению
Апдейты Яндекса - какие бывают, как отслеживать ап Тиц, изменения поисковой выдачи и все другие обновления

Являются одним из основных и наиболее важных сервисов интернета.

При помощи поисковых систем миллиарды пользователей интернета находят для себя необходимую информацию.

Что такое поисковая система?

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

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

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

Поисковые системы в Рунете

В России более половины пользователей предпочитают поисковую систему Яндекс, а на долю Google приходится около 35% запросов. Остальные пользователи используют Рамблер, Mail.ru, Nigma и другие сервисы.

На Украине около 60% пользователей используют Google, на долю Яндекса приходится немногим более 25% обработанных запросов.

Поэтому при продвижении сайтов в Рунете специалисты стараются продвигать сайт, ориентируясь на поисковые системы Яндекс и Google.

Задачи поисковых систем

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

  1. Быстро и качественно собрать информацию о различных страницах разных сайтов.
  2. Обработать информацию об этих страницах и определить какому запросу или запросам они соответствуют.
  3. Формировать и выдавать поисковую выдачу в ответ на запросы пользователей.

Составляющие поисковых систем

Поисковые системы представляют собой сложный программный комплекс, который состоит из следующих основных блоков:

  1. Сбор данных.
  2. Индексация.
  3. Вычисление.
  4. Ранжирование.

Это разделение условное, так как работа разных поисковых систем несколько отличается друг от друга.

1. Сбор данных

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

Вебмастерам необходимо дать знать поисковым системам о появлении новых материалов при помощи размещения адреса страницы в аддурилку или прогнать анонс страницы по социальным сетям.

Лично я пользуюсь последним способом и считаю, что этого вполне достаточно.

Комментарий. Немного отвлекусь и расскажу об эффективности размещения анонсов в социальных сетях на скорость индексации новых страниц сайта.

Я использую для контроля и фиксации уникальности текста на страницах своего сайта сервис text.ru.

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

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

Если проверка уникальности задерживалась около часа и более, то процент уникальности всегда равнялся 0%. Это значит, что за неполный час после размещения страница уже была проиндексирована и занесена в базу данных поисковых систем.

2. Индексация

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

3. Вычисление

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

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

4. Ранжирование

Затем, на основании рассчитанных параметров и показателей, происходит определение релевантности страницы тем или иным запросам и ранжирование этой страницы.

Это будет важно для быстрого и качественного формирования страницы поисковой выдачи по этим запросам.

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

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

Добрый день, уважаемые читатели моего сео блога . Эта статья о том, как работает поисковая система Яндекс , какие она использует технологии и алгоритмы для ранжирования сайтов, что делает для подготовки ответа пользователям. Многие знают, что этот флагман русского поиска задает тон в Рунете, владеет самой большой базой данных в Евразии, оперирует контентом более чем миллиарда страниц, знает ответ на любой вопрос. По данным Liveinternet за август 2012 года, доля Яндекса в России составляет 60,5%. Месячная аудитория портала - 48,9 миллионов человек. Но самое главное, для нас, блоггеров в том, как поисковая система получает наши запросы, как их обрабатывает и какой результат получается на выходе. С одной стороны, зная и понимая эту информацию, нам проще пользоваться всеми ресурсами Яндекса, с другой стороны — легче продвигать наши блоги. Поэтому, предлагаю вместе со мной посмотреть самые важные технологии лучшей поисковой системы Рунета.

Когда пользователь Интернета впервые хочет обратиться за информацией к поисковой системе, у него может возникнуть один вопрос: «Как происходит поиск?» Но когда он ее получает, зачастую этот вопрос меняется на другой: «Почему так быстро?» И действительно, почему поиск какого-нибудь файла на компьютере занимает 20 секунд, а результат запроса со всей сети компьютеров по всему миру появляется через секунду? Самое интересное, что первых два вопроса (как происходит поиск и почему 1 секунда) могут быть в одном ответе — поисковая система заранее подготовилась к запросу пользователя.

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

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

Индексирование Интернета

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

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

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

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

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

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

Индексирование позволяет выполнить первую функцию поисковой системы — сбор информации на новых страницах в сети Интернет. Но у Яндекса есть и вторая функция — поиск ответа на запрос пользователя в уже подготовленной поисковой базе.

Яндекс готовит ответ

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

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

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

Когда пользователь поисковой системы задает свой запрос,в 20-ти случаях из 100 получаются неоднозначные цели в вопросе. Например, если он пишет в строке поиска слово «Наполеон», то еще не известно, какой ответ ожидает — рецепт торта или биография великого полководца. Или фраза «Братья Гримм» — сказки, фильмы, музыкальная группа. Чтобы такой возможный веер целей сузить до конкретных ответов в Яндексе существует специальная технология С п е к т р . Она учитывает потребности пользователей, используя статистику поисковых запросов. Из всех вопросов, заданных в Яндексе посетителями, Спектр выделяет в них различные объекты (имена людей, названия книг, модели машин и т.д.) Эти объекты распределены по некоторым категориям. На сегодняшний момент таких категорий насчитывается более 60-ти. С помощью них поисковая система имеет в своей базе разные значения слов в запросах пользователей. Интересно, что эти категории периодически проверяются (анализ происходит пару раз в неделю), что позволяет Яндексу более точно давать ответы на поставленные вопросы.

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

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

А вот такой результат получат жители города Ставрополь на тот же запрос:

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

Поисковая система Яндекс ру — результаты ответа

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

Рассмотрим эту форму результата поподробней. Для заголовка результата поиска Яндекс часто использует название заголовка страницы (то, что оптимизаторы прописывают в теге title). Если же его нет, то здесь появляются слова из названия статьи или поста. Если текст заголовка большой, поисковая система ставит в это поле его фрагмент, который больше всего релевантен к заданному запросу.

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

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

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

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

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

В целом уже с различными примерами страница с ответами будет выглядеть так:

Ранжирование и асессоры

В задачу Яндекса входит не только поиск всех возможных вариантов ответа, но и подбор самых лучших (релевантных). Ведь пользователь не будет рыться во всех ссылках, которые ему предоставит в качестве результата поисков Яндекс. Процесс упорядочивания результатов поиска называется ранжированием . То есть именно ранжирование определяет качество предлагаемых ответов.

Есть правила, по которым Яндекс определяет релевантные страницы:

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

К примеру, так будет ранжировать Яндекс сайты по запросу «яблоко»:

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

В завершении моего поста хочу показать вам интересную статистику, собранную поисковой системой Яндекса в процессе своей работы.

1. Популярность личных имён в России и российских городах (данные взяты из учетных записей блоггеров и пользователей социальных сетей в марте 2012 года).

Великий провидец

В 1863 году великий писатель Жюль Верн создал очередную свою книгу «Париж в ХХ веке». В ней он подробно описал метро, автомобиль, электрический стул, компьютер и даже сеть Интернет. Однако издатель отказался печатать книгу и она пролежала более 120 лет, пока ее не нашел правнук Жюля Верна в 1989 году. Издана была книга в 1994году.

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

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

Поисковые системы в исторической перспективе

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

Но что же поменялось в действительности за последние годы? Не алгоритмы и не структуры данных, не математические модели. Хотя и они тоже. Поменялась парадигма использования систем. Проще говоря, к экрану со строчкой поиска подсели домохозяйка, ищущая утюг подешевле, и выпускник вспомогательного интерната в надежде найти работу автомеханика. Кроме появления фактора, невозможного в доинтернетовскую эру, - фактора тотальной востребованности поисковых систем - стала очевидна еще пара изменений. Во-первых, стало ясно, что люди не только «думают словами», но и «ищут словами». В ответе системы они ожидают увидеть слово, набранное в строке запроса. И второе: «человека ищущего» трудно «переучить искать», так же как трудно переучить говорить или писать. Мечты 60-80-х об итеративном уточнении запросов, о понимании естественного языка, о поиске по смыслу, о генерации связного ответа на вопрос с трудом выдерживают сейчас жестокое испытание реальностью.

Алгоритм + структура данных = поисковая система

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

Прямой поиск

Простейшая его версия знакома многим, и нет программиста, который бы не написал хотя бы раз в своей жизни подобный код:

Несмотря на кажущуюся простоту, последние 30 лет прямой поиск интенсивно развивается. Было выдвинуто немалое число идей, сокращающих время поиска в разы. Эти алгоритмы подробно описаны в разнообразной литературе, есть их сводки и сопоставления. Неплохие обзоры прямых методов поиска можно найти в учебниках, например, Седжвика или Кормена. При этом надо учесть, что новые алгоритмы и их улучшенные варианты появляются постоянно.

Хотя прямой просмотр всех текстов - довольно медленное занятие, не следует думать, что алгоритмы прямого поиска не применяются в интернете. Норвежская поисковая система Fast использовала чип, реализующий логику прямого поиска упрощенных регулярных выражений (fastpmc ) , и разместила 256 таких чипов на одной плате. Это позволяло Fast обслуживать довольно большое количество запросов в единицу времени.

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

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

Инвертированный файл

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

Проиллюстрируем эту структуру при помощи замечательного русского конкорданса - «Симфонии», выпущенной Московской патриархией по тексту синодального перевода Библии.

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

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

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

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

Дополнительно на разностный способ хранения адресов накладывают какой-нибудь простенький способ упаковки: зачем отводить небольшому целому числу фиксированное «огромное» количество байтов, ведь можно отвести ему почти столько байтов, сколько оно заслуживает. Здесь уместно упомянуть коды Голомба или встроенную функцию популярного языка Perl : pack («w ») .

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

В результате всех описанных ухищрений размер инвертированного файла, как правило, составляет от 7 до 30 процентов от размера исходного текста, в зависимости от подробности адресации.

Занесены в «Красную книгу»

Неоднократно предлагались другие, отличные от инвертированного и прямого поиска, алгоритмы и структуры данных. Это, прежде всего, суффиксные деревья (Манбер, Гоннет), а также сигнатуры (Фалуцос).

Первый из них функционировал и в интернете, будучи запатентованным алгоритмом поисковой системы OpenText . Мне доводилось встречать суффиксные индексы в отечественных поисковых системах. Второй - метод сигнатур - представляет собой преобразование документа к поблочным таблицам хеш-значений его слов - «сигнатуре» и последовательному просмотру «сигнатур» во время поиска.

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

Математические модели

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

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

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

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

Критика булевской модели, вполне справедливая, состоит в ее крайней жесткости и непригодности для ранжирования. Поэтому еще в 1957 году Джойс и Нидхэм предложили учитывать частотные характеристики слов, чтобы «... операция сравнения была бы отношением расстояния между векторами...» (Джойс, 1957). Векторная модель и была с успехом реализована в 1968 году отцом- основателем науки об информационном поиске Джерардом Солтоном (Gerard Salton ) в поисковой системе SMART (Salton "s Magical Automatic Retriever of Text ) .

Ранжирование в этой модели основано на естественном статистическом наблюдении, что чем больше локальная частота термина в документе (TF ) и больше «редкость» (т.е. обратная встречаемость в документах) термина в коллекции (IDF ) , тем выше вес данного документа по отношению к термину. Обозначение IDF ввела Карен Спарк-Джоунз в 1972 г. в статье про различительную силу (term specificity ) . С этого момента обозначение TF *IDF широко используется как синоним векторной модели.

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

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

Поиск «по смыслу»

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

Для примера опишу лишь одну, пожалуй, самую популярную модель, работающую по смыслу. В теории информационного поиска данную модель принято называть латентно-семантическим индексированием (иными словами, выявлением скрытых смыслов). Эта алгебраическая модель основана на сингулярном разложении прямоугольной матрицы, ассоциирующей слова с документами. Элементом матрицы является частотная характеристика, отражающая степень связи слова и документа, например, TF *IDF . Вместо исходной миллионноразмерной матрицы авторы метода Фурнас и Дирвестер предложили использовать 50-150 «скрытых смыслов» , соответствующих первым главным компонентам ее сингулярного разложения.

Сингулярным разложением действительной матрицы A размеров m *n называется всякое ее разложение вида A = USV , где U m *m , V - ортогональная матрица размеров n *n , S - диагональная матрица размеров m *n , элементы которой sij = 0 , если i не равно j , и sii = si >= 0 . Величины si называются сингулярными числами матрицы и равны арифметическим значениям квадратных корней из соответствующих собственных значений матрицы AAT . В англоязычной литературе сингулярное разложение принято называть SVD -разложением.

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

Операции поиска или нахождения похожих документов резко упрощаются, так как каждому слову и каждому документу сопоставляется относительно короткий вектор из k смыслов (строки и столбцы соответствующих матриц). Однако по причине малой осмысленности «смыслов» или по какой иной , но использование LSI в лоб для поиска так и не получило распространения. Хотя во вспомогательных целях (автоматическая фильтрация, классификация, разделение коллекций, предварительное понижение размерности для других моделей) этот метод, по-видимому, находит применение.

Оценка качества

«...проверка устойчивости показала, что перекрытие релевантных документов между любыми двумя асессорами примерно 40% в среднем <...> точность и полнота, измеренная между асессорами, около 65% <...> Это накладывает практическую верхнюю границу на качество поиска в районе 65%...»

(«What we have learned, and not learned, from TREC», Donna Harman)

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

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

«...Я был потрясен, когда кто-то из Google сказал мне, что они вообще не используют ничего наработанного в TREC , потому что все алгоритмы, заточенные на дорожке “произвольных запросов”, спам расшибает вдребезги...»

Пора вернуться к теме, с которой началась эта статья: что же изменилось в поисковых системах за последнее время?

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

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

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

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

Качество ранжирования

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

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

Естественным развитием этой идеи можно считать предложенный Брином и Пейджем в 1998 году алгоритм PageRank - итеративный алгоритм, подобный тому, что используется в задаче определения победителя в шахматном турнире по швейцарской системе. В сочетании с поиском по лексике ссылок, указывающих на страницу (старая, весьма продуктивная идея, которая использовалась в гипертекстовых поисковых системах еще в 80-е годы), эта мера позволила резко повысить качество поиска.

Немного раньше, чем PageRank , был предложен локальный (т.е. динамический, основанный на запросе) алгоритм учета популярности - HITS (Кляйнберг), который не используется на практике в основном из-за вычислительной дороговизны. Примерно по той же причине, что и локальные (т.е. динамические) методы, оперирующие словами.

Оба алгоритма, их формулы, условия сходимости подробно описаны, в том числе и в русскоязычной литературе. Отмечу только, что расчет статической популярности не является самоценной задачей, он используется в многочисленных вспомогательных целях: определение порядка обхода документов, ранжирование поиска по тексту ссылок и т.д. Формулы расчета популярности постоянно улучшают, в них вносят учет дополнительных факторов - тематической близости документов (например, популярная поисковая система www .teoma .com ), их структуры и т.п., позволяющих понизить влияние непотизма. Интересной отдельной темой является эффективная реализация соответствующих структур данных (Бхарат).

Качество индекса

Хотя размер базы в интернете на поверхностный взгляд не кажется критическим фактором, это не так. Недаром рост посещаемости таких машин, как Google и Fast , хорошо коррелирует именно с ростом их баз. Основная причины: «редкие» запросы, то есть те, по которым находится менее 100 документов, составляют в сумме около 30% от всей массы поисков - весьма значительную часть. Этот факт делает размер базы одним из самых критичных параметров системы.

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

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

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

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

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

Для решения этой задачи Уди Манбер (автор известной программы приближенного прямого поиска agrep ) в 1994 году предложил идею, а Андрей Бродер в 1997-м придумал название и довел до ума алгоритм «шинглов» (от слова shingles - «черепички, чешуйки»). Вот его примерное описание.

Для каждого десятисловия текста рассчитывается контрольная сумма (шингл). Десятисловия идут внахлест, с перекрытием, так, чтобы ни одно не пропало. А затем из всего множества контрольных сумм (очевидно, что их столько же, сколько слов в документе минус 9) отбираются только те, которые делятся на, скажем, 25. Поскольку значения контрольных сумм распределены равномерно, критерий выборки никак не привязан к особенностям текста. Ясно, что повтор даже одного десятисловия - весомый признак дублирования, если же их много, скажем, больше половины, то с определенной (несложно оценить вероятность) уверенностью можно утверждать: копия найдена! Ведь один совпавший шингл в выборке соответствует примерно 25 совпавшим десятисловиям в полном тексте!

Очевидно, что так можно определять процент перекрытия текстов, выявлять все его источники и т.п. Этот изящный алгоритм воплотил давнюю мечту доцентов: отныне мучительный вопрос «у кого студент списывал этот курсовик» можно считать решенным! Легко оценить долю плагиата в любой статье .

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

Цена одного процента

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

Для того чтобы справиться с этой проблемой, индекс разбивают на части и раскладывают по десяткам, сотням и даже тысячам компьютеров. Сами компьютеры начиная с 1997 года (поисковая система Inktomi ) представляют собой обычные 32-битные машины (Linux , Solaris , FreeBSD , Win 32 ) с соответствующими ограничениями по цене и производительности. Исключением из общего правила осталась лишь AltaVista , которая с самого начала использовала относительно «большие» 64-битные компьютеры Alpha .

Поисковые системы для интернета (и вообще все большие поисковые сиcтемы) могут ускорять свою работу при помощи техник эшелонирования и прюнинга.

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

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

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

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

Syntactic Clustering of the Web
Andrei Z. Broder, Steven C. Glassman, Mark S. Manasse
WWW6, 1997

The Approximation of One Matrix by Another of Lower Rank
Eckart, G. Young Psychometrika, 1936

Description and Performance Analysis of Signature File Methods
Faloutsos, S. Christodoulakis
ACM TOIS, 1987

Information Retrieval Using a Singular Value Decomposition Model of Latent Semantic Structure
G.W. Furnas, S. Deerwester, S.T. Dumais, T.K. Landauer, R. A. Harshman, L.A. Streeter and K.E. Lochbaum
ACM SIGIR, 1988

Examples of PAT Applied to the Oxford English Dictionary
Gonnet G.
University of Waterloo, 1987

The Thesaurus Approach to Information Retrieval
T. Joyce and R.M. Needham
American Documentation, 1958

An Efficient Method to Detect Duplicates of Web Documents with the Use of Inverted Index
S. Ilyinsky, M. Kuzmin, A. Melkov, I. Segalovich
WWW2002, 2002

Suffix Arrays: A New Method for On-line String Searches
U. Manber, G. Myers
1st ACM-SIAM Symposium on Discrete Algorithms, 1990

Finding Similar Files in a Large File System
U. Manber
USENIX Conference, 1994

On Relevance, Probabilistic Indexing and Information Retrieval
M.E. Maron and J.L. Kuhns
Journal of the ACM, 1960

Relevance Weighting of Search Terms
S.E. Robertson and K. Sparck Jones
JASIS, 1976

Algorithms in C++
Robert Sedgewick
Addison-Wesley, 1992

A Statistical Interpretation of Term Specificity and Its Application in Retrieval
K. Sparck Jones
Journal of Documentation, 1972

Natural Language Information Retrieval
Tomek Strzalkowski (ed.)
Kluwer Academic Publishers, 1999

Симфония, или Словарь-указатель к Священному Писанию Ветхого и Нового Завета
Составители М.А. Бондарев, М.С. Косьян, С.Ю. Косьян
Изд-во Московской патриархии, 1995

Глоссарий

Асессор (assessor , эксперт) - специалист в предметной области, выносящий заключение о релевантности документа, найденного поисковой системой.

Булевская модель (boolean , булева, булевая, двоичная) - модель поиска, опирающаяся на операции пересечения, объединения и вычитания множеств.

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

Вероятностная модель - модель информационного поиска, рассматривающая релевантность как вероятность соответствия данного документа запросу на основании вероятностей соответствия слов данного документа идеальному ответу.

Внетекстовые критерии (off -page , внестраничные) - критерии ранжирования документов в поисковых системах, учитывающие факторы, не содержащиеся в тексте самого документа и не извлекаемые оттуда никаким образом.

Входные страницы (doorways , hallways ) - страницы, созданные для искусственного повышения ранга в поисковых системах (поискового спама). При попадании на них пользователя перенаправляют на целевую страницу.

Дизамбигуация (tagging , part of speech disambiguation , таггинг) - выбор одного из нескольких омонимов c помощью контекста; в английском языке часто сводится к автоматическому назначению грамматической категории «часть речи».

Дубликаты (duplicates ) - разные документы с идентичным, с точки зрения пользователя, содержанием; приблизительные дубликаты (near duplicates , почти-дубликаты), в отличие от точных дубликатов, содержат незначительные отличия.

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

Инвертированный файл (inverted file , инверсный файл, инвертированный индекс, инвертированный список) - индекс поисковой системы, в котором перечислены слова коллекции документов, а для каждого слова перечислены все места, в которых оно встретилось.

Индекс (index , указатель) - см. Индексирование.

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

Индексирование (indexing , индексация) - процесс составления или приписывания указателя (индекса) - служебной структуры данных, необходимой для последующего поиска.

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

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

Контрастность термина - см. Различительная сила.

Латентно-семантическое индексирование - запатентованный алгоритм поиска по смыслу, идентичный факторному анализу. Основан на сингулярном разложении матрицы связи слов с документами.

Лемматизация (lemmatization , нормализация) - приведение формы слова к словарному виду, то есть лемме.

Накрутка поисковых систем - см. Спам поисковых систем.

Непотизм - вид спама поисковых систем, установка авторами документов взаимных ссылок с единственной целью поднять свой ранг в результатах поиска.

Обратная встречаемость в документах (inverted document frequency , IDF , обратная частота в документах, обратная документная частота) - показатель поисковой ценности слова (его различительной силы); «обратная» говорят, потому что при вычислении этого показателя в знаменателе дроби обычно стоит число документов, содержащих данное слово.

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

Омонимия - см. Полисемия.

Основа - часть слова, общая для набора его словообразовательных и словоизменительных (чаще) форм.

Поиск по смыслу - алгоритм информационного поиска, способный находить документы, не содержащие слов запроса.

Поиск похожих документов (similar document search ) - задача информационного поиска, в которой в качестве запроса выступает сам документ и необходимо найти документы, максимально напоминающие данный.

Поисковая система (search engine , SE , информационно-поисковая система, ИПС, поисковая машина, машина поиска, «поисковик», «искалка») - программа, предназначенная для поиска информации, обычно текстовых документов.

Поисковое предписание (query , запрос) - обычно строчка текста.

Полисемия (polysemy , многозначность) - наличие нескольких значений у одного и того же слова.

Полнота (recall , охват) - доля релевантного материала, заключенного в ответе поисковой системы, по отношению ко всему релевантному материалу в коллекции.

Почти-дубликаты (near -duplicates , приблизительные дубликаты) - см. Дубликаты.

Прюнинг (pruning ) - отсечение заведомо нерелевантных документов при поиске с целью ускорения выполнения запроса.

Прямой поиск - поиск непосредственно по тексту документов, без предварительной обработки (без индексирования).

Псевдообратная связь - см. Обратная связь.

Различительная сила слова (term specificity , term discriminating power , контрастность, различительная сила) - степень ширины или узости слова. Слишком широкие термины в поиске приносят слишком много информации, при этом существенная часть ее бесполезна. Слишком узкие термины помогают найти слишком мало документов, хотя и более точных.

Регулярное выражение (regular expression , pattern , «шаблон», реже «трафарет», «маска») - способ записи поискового предписания, позволяющий определять пожелания к искомому слову, его возможные написания, ошибки и т.д. В широком смысле - язык, позволяющий задавать запросы неограниченной сложности.

Релевантность (relevance , relevancy ) - соответствие документа запросу.

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

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

Словообразование (derivation ) - образование слова или основы из другого слова или основы.

Смыслоразличительный - см. Различительная сила.

Спам поисковых систем (spam , спамдексинг, накрутка поисковых систем) - попытка воздействовать на результат информационного поиска со стороны авторов документов.

Статическая популярность - см. PageRank .

Стемминг - процесс выделения основы слова.

Стоп-слова (stop -words ) - те союзы, предлоги и другие частотные слова, которые данная поисковая система исключила из процесса индексирования и поиска для повышения своей производительности и/или точности поиска.

Суффиксные деревья, суффиксные массивы (suffix trees , suffix arrays , PAT -arrays ) - индекс, основанный на представлении всех значимых суффиксов текста в структуре данных, известной как «бор» (trie ) . Суффиксом в этом индексе называют любую «подстроку», начинающуюся с некоторой позиции текста (текст рассматривается как одна непрерывная строка) и продолжающуюся до его конца. В реальных приложениях длина суффиксов ограничена, а индексируются только значимые позиции - например, начала слов. Этот индекс позволяет выполнять более сложные запросы, чем индекс, построенный на инвертированных файлах.

Токенизация (tokenization , lexical analysis , графематический анализ, лексический анализ) - выделение в тексте слов, чисел и иных токенов, в том числе, например, нахождение границ предложений.

Точность (precision ) - доля релевантного материала в ответе поисковой системы.

Хеш-значение (hash -value ) - значение хеш-функции (hash -function ) , преобразующей данные произвольной длины (обычно строчку) в число фиксированного порядка.

Частота (слова) в документах (document frequency , встречаемость в документах, документная частота) - число документов в коллекции, содержащих данное слово.

Частота термина (term frequency , TF ) - частота употребления слова в документе.

Шингл (shingle ) - хеш-значение непрерывной последовательности слов текста фиксированной длины.

PageRank - алгоритм расчета статической (глобальной) популярности страницы в интернете, назван в честь одного из авторов - Лоуренса Пейджа. Соответствует вероятности попадания пользователя на страницу в модели случайного блуждания.

TF *IDF - численная мера соответствия слова и документа в векторной модели; тем больше, чем относительно чаще слово встретилось в документе и относительно реже - в коллекции.