Текст книги "Яндекс Воложа. История создания компании мечты"
Автор книги: Владислав Дорофеев
Жанр:
О бизнесе популярно
сообщить о нарушении
Текущая страница: 6 (всего у книги 22 страниц) [доступный отрывок для чтения: 9 страниц]
Елена Колмановская уточняет: «В Рунет “Яндекс” попал почти случайно. Мы ведь продавали “искалки”. Вот и сделали демоверсии на трех красивых примерах: Библии, полном собрании сочинений Пушкина и Рунете, тогда, в 1997 г., в сумме тянувшем на 4–5 ГБ. Пользователи были потрясены. Еще бы! Например, на слово “жених” выскакивало аж 48 ссылок!»
«К 1996 г. мы уже попали на улицу Губкина, в Институт генетики, в теплицу. Так что “Яндекс”, можно сказать, рождался в теплице». При этом поисковик, по словам Воложа, был рассчитан лишь на поиск покупателей собственно самой программы, а не пользователей этой программы. «Когда примерно в 1995–1996 гг. появился Интернет, мы поняли, что вот есть еще одно место, куда его применить, – поиск по сайту сделать… Мы думали, что будем жить от продажи своих технологий другим компаниям. Приходили, например, в “Рамблер”, поиск которого не знал русского языка, в “Инфоарт”… Мы говорили: хорошо бы соединить ваш прекрасный поиск с нашими замечательными лингвистическими технологиями. Но как-то они не загорелись… Предлагали выкупить нашу технологию за $15 000, потом за $50 000, никто не покупал… В попытке как-то еще разрекламировать эту технологию мы запустили сайт http://yandex.ru, на котором, собственно, демонстрировали – мы надеялись, что поиск по вебу это будет хорошая демонстрация, – что мы умеем на самом деле делать. Серьезно». Похоже, когда Воложу вспоминается начальный период становления «Яндекса», он сам удивляется своей тогдашней наивности и неумению понять перспективы. Это теперь все очевидно, а тогда надо было деньги зарабатывать.
Потенциальным покупателям программы объясняли преимущества поиска, основанного на принципах русской морфологии (строение слов в их различных грамматических формах), что позволяло искать ответ на запрос в несколько раз результативнее и точнее, чем у существующих тогда конкурентов. Но не судьба.
Получается, что до сентября 1997 г., когда «Яндекс» вошел в Интернет, чтобы там и остаться, отцы-основатели продолжали упорно продавать свой алгоритм поиска уже работающим в Интернете поисковикам.
Впрочем, ясности не будет и спустя несколько лет.
«Когда сюда в 2003 г. приезжали гугловские ребята, мы с Сегаловичем пытались и им продать эту идею. Но они сказали, что это неважно – то есть для России, может, и важно, но не в международном масштабе. А через несколько лет они сделали то же самое не только для России, но и для арабского мира – в общем, поняли, что идея все-таки хорошая». Нет, все-таки доля везения, доля случая в судьбе человека очень велика. И даже в судьбе самых удачливых и умных, умеющих анализировать данные, как, например, Аркадий Волож.
Это его откровение показывает следующее. Даже когда стало ясно, что технология морфологического поиска оказалась значительнее и важнее прикладных задач, ради решения которых эту технологию создавали, ее создатели отчетливо еще не осознавали, что они уцепили за бороду бога.
Как же велика доля случая, который сделал «Яндекс» первым русским поисковиком, использующим технологию поиска, основанную на принципах русской морфологии. И косвенным образом утвердившего в мировой Сети принцип морфологического поиска!
Глава 5
Web-cказочники из Яndex
1997–1999 гг. стали настоящим технологическим прорывом для команды Воложа, в том числе и потому, что тогда не стоял вопрос выживания – они зарабатывали «на железе». Но поначалу о завоевании России и мира не было и речи.
По словам Аркадия Воложа, в «Яндексе» «до сих пор хранится плата с 386-м процессором, на которой мы запускались в 1997 г.».
1997 г. разделился на две части. Первая часть – доинтернетовская – была отмечена созданием двух новых продуктов: Яndex.CD, который помогал найти нужный документ на CD-ROM (компакт-диске), и Яndex.Lib – полнофункциональная библиотека для встраивания в различные приложения и базы данных. Продуктов забытых, но сущностно важных в подготовке к началу новой эпохи, в строительстве технологической базы.
Дальше важная деталь. Для облегчения продаж «Яндекса» в качестве примера использовались три демоверсии, показывающие возможности поисковика: Библия, полное собрание сочинений Пушкина и, собственно, тогдашний Рунет.
Последнее направление (как тогда казалось, не самое важное в маркетинге) и определило судьбу яндексоидов и русской поисковой технологии в исполнении Воложа и Ко.
В 1997 г. Волож решился на крупные инвестиции в создание поисковой машины. На $10 000 были закуплены три сервера с жесткими дисками по 1 ГБ. Вскоре на них оказался записанным практически весь известный тогда Рунет.
«Мы решили запустить свой поиск на собственной страничке в Интернете, и этот сервис вдруг оказался кому-то нужен… Так в сентябре 1997 г. появился http://yandex.ru, а в 1998 г. мы уже продали на нем первый контекстный баннер», – впоследствии прокомментирует Волож выход проекта в публичное пространство. Факт очевиден. От коммерческого старта и до первого заказа пройдет почти год. И это лишнее подтверждение того, что «Яндекс» – никакой не венчурный проект. В отношении «Яндекса» – это притянутый за уши термин, поскольку на начальном этапе работы над проектом ни цель, ни назначение, ни модель монетизации его создателям не были ясны, как, впрочем, не был известен и термин «венчурный».
Индексированная копия Рунета образца осени 1997 г. поместилась на одном SCSI-диске на сервере под столом одного из первых разработчиков «Яндекса» Дмитрия Тейблюма. Тогда паук-поисковик «Яндекса» индексировал Рунет в еженедельном режиме.
Кстати, полезно понимать, что даже самая полная база одной поисковой системы охватывает около 40–50 % открытой части веба, остальная часть мировой Сети скрыта или недоступна. Именно по этой причине «Яндекс» в конце страницы выдачи предлагает пользователю сделать запрос и к другим поисковым системам. Единственный, кстати, из поисковых систем.
«Мы сделали “Яндекс” с простым намерением продемонстрировать наши революционные технологии», – такими словами Волож отдает дань великому случаю в интернет-судьбе «Яндекса». Планов завоевать мир пока еще не было.
«Яндекс» пришел в Интернет на полгода позже «Рамблера». Однажды Волож выскажется на этот счет: «Тогда в головах у людей мы были вовсе не первыми. И даже после того, как мы догнали “Рамблер” по объективным показателям, нам понадобился еще почти год, чтобы поменялась картина в головах у пользователей и мы стали субъективно первыми».
На две недели отстал «Яндекс» и от Google, который 14 сентября 1997 г. (по другой версии, 15-го) зарегистрировал домен http://google.com.
Кстати, в 1997 г. Воложу и Сегаловичу исполнилось по 33 года – первому 11 февраля, второму 13 сентября. Одноклассникам захотелось год мистического духовного взросления отметить выдающимся событием. У них получилось.
23 сентября 1997 г. на выставке Softool впервые была представлена поисковая система Яndex как самостоятельный проект. От этой даты принято отсчитывать возраст поисковика, хотя проект получил юридическое оформление в качестве самостоятельной компании лишь в марте 2000 г. Презентация поисковой машины Яndex-Web состоялась в четверг, 25 сентября в 16:00, на выставке Softool на стенде Д17 (разумеется, на стенде компании CompTek).
Процитирую распространенный тогда на выставке пресс-релиз:
Запущена новая поисковая машина Яndex-Web
23 сентября, Москва – фирма CompTek сообщает об открытии новой поисковой машины http://yandex.ru. Поисковая машина использует механизм Яndex-Web, областью поиска являются Web-сервера доменов. su и.ru, а также иностранные русскоязычные сервера, в том числе – стран СНГ. Яndex-Web представляет собой естественное развитие программных продуктов серии Яndex (Яndex.Site, Яndex.CD, Яndex.Dict, Яndex.Lib). Как и все Яndex-системы, Яndex-Web является полнотекстовой поисковой системой с учетом морфологии русского и английского языков. В отличие от популярной морфологической надстройки к поисковой системе AltaVista (http://www.comptek.ru/alta.html), Яndex-Web является полностью оригинальной разработкой CompTek. В настоящий момент робот (сетевой паук) обходит 5000 серверов (около 4 ГБ текстов) каждую неделю, список серверов пополняется. При индексировании проверяется уникальность документов – это значит, что, если документ существует в нескольких кодировках и/или на нескольких зеркалах, в списке найденного он будет указан один раз (и, соответственно, один раз учтен в статистике). Алгоритмы морфологического разбора, основанные на грамматическом словаре, умеют нормализовать слова, то есть находить их начальную форму. Для неизвестных Яndex слов строится гипотетическая словарная статья, позволяющая обрабатывать (анализировать и синтезировать) такие слова аналогично известным. Язык запросов (как и в других продуктах Яndex), помимо стандартных логических операторов (И, ИЛИ), включает оператор исключения (И НЕ), а также позволяет осуществлять поиск внутри абзаца, внутри документа, в заголовках и других полях, а также с указанием расстояния между словами. В дополнение к обычной практике Яndex – нормализации слов при индексации и поиске – реализован также запрос по точной словоформе. Язык запросов более подробно описан на странице http://yandex.ru/ya_detail.html. Найденные документы отсортированы по релевантности, которая учитывает не только «контрастность» слова, то есть его относительную частоту для данного документа, но и расстояние между словами и положение слова в документе. Яndex-Web при индексировании запоминает позицию слова в документе, что дает возможность не только искать «с расстоянием», но и выделить (подсветить) слова, найденные в тексте. Если документы были изменены после индексирования, выдается соответствующее предупреждение.
Обратите внимание: компания CompTek названа фирмой – вероятно, ее руководителям тогда казалось, что так солиднее.
Проект представляли трое – Аркадий Волож (неизменно в центре, как обычно, в мешковатом пиджаке), Илья Сегалович (в галстуке, улыбающийся своей искрометной харизматической улыбкой), Елена Колмановская (задумчивая, хотя и довольная).
«Это было маленькое приложение, там было всего 4 ГБ всех текстов, которые мы смогли наиндексировать (2–5 млн документов тогдашнего Рунета. – В.Д.)… Но в сентябре 1997 г. вдруг выяснилось, что это не просто демонстрашка, а целый сервис, народ пошел туда, стали много искать, заваливать нас запросами», – фиксирует Волож прошлое.
Но еще не пришло время отделения от матки, компании CompTek, которая всего за несколько лет под руководством Аркадия Воложа с насмешливым взглядом, эдакого авторитарного лидера с манерами демократа, стала крупнейшим дистрибьютором Cisco Systems в России и СНГ с объемом поставок сетевого и телекоммуникационного оборудования в десятки миллионов долларов в год. Потому что в России компьютерная техника была наиболее ходовым (или даже практически единственным на тот момент) серьезным коммерческим продуктом на рынке информационных технологий.
При этом Волож понимал, что единственным конкурентным преимуществом и коммерческим результатом проекта Яndex могут стать только востребованные прорывные технологии. На тот момент в поиске.
Теперь бы разобраться, что же такое поиск в Интернете. Разумеется, всего лишь на пользовательском уровне. Потому что людей, понимающих суть этого процесса, на планете немного. И я сам на это не претендую.
Я, например, даже не догадывался до начала работы над книгой о Воложе и «Яндексе» (можно в другой последовательности), что между событием, произошедшим в Сети, и его отображением в поисковой базе всегда есть временной промежуток, всегда есть небольшая дистанция, в которую можно упрятать вечность или ее отсутствие. Потому что «Яндекс» ищет ответы на вопросы пользователей не в Сети, а в ее слепке, в муляже, созданном запущенными в Сеть роботами-пауками. И в этом смысле «Яндекс» (как и все поисковики) является творцом гигантской, почти необозримой виртуальной вселенной.
Конечно, технология за годы существования поисковых систем сильно изменилась, но все же основы были заложены тогда, на заре Интернета. Это было счастливое время, когда зарождалось многое привычное сегодня.
Разумеется, лучше всех о своих поисковых технологиях рассказывает сам «Яндекс» (http://company.yandex.ru/technologies/searchindex/index.xml).
Поисковая машина «Яндекса» отвечает на вопросы пользователей, находя нужные документы в Интернете. А размеры современного Интернета исчисляются в экзабайтах, то есть в миллиардах миллиардов байтов. Конечно же, «Яндекс» не обходит весь Интернет каждый раз, когда ему задают вопрос. Поисковая система, так сказать, делает домашнее задание.
«Яндекс» ищет по поисковому индексу – базе данных, где для всех слов, которые есть на известных поиску сайтах, указано их местонахождение – адрес страницы и место на ней. Индекс можно сравнить с предметным указателем в книге или адресным справочником. В отличие от обычного предметного указателя, индекс содержит не только термины, а вообще все слова. А в отличие от адресного справочника, у каждого слова-адресата есть не одно, а очень много «мест прописки».
Поиск в Интернете состоит из двух частей. Первая – поисковик обходит Интернет, создавая его слепок на своих серверах. Вторая – пользователь задает запрос и получает ответ с серверов поисковика.
Подготовка данных, по которым ищет поисковая машина, называется индексированием. Специальная компьютерная система – поисковый робот – регулярно обходит Интернет, выкачивает документы и обрабатывает их. Создается своего рода слепок Интернета, который хранится на серверах поисковика и обновляется при каждом новом обходе.
У «Яндекса» два поисковых робота – основной и быстрый (он называется Orange). Основной робот индексирует Интернет в целом, а Orange отвечает за то, чтобы в поиске можно было найти самые свежие документы, которые появились минуты или даже секунды назад. У каждого робота есть список адресов документов, которые нужно проиндексировать.
Когда при обходе робот видит на уже известных сайтах новые ссылки, он добавляет их в свой список, увеличивая количество индексируемых страниц. Впрочем, владелец сайта сам может помочь основному роботу «Яндекса» найти свой ресурс и подсказать, например, как часто обновляются его страницы – через сервис «Яндекс. Вебмастер».
Сначала программа-планировщик выстраивает маршрут – очередность обхода документов. При этом планировщик учитывает важные для поисковой системы характеристики сайтов, такие как, например, цитируемость или частота обновления документов. После создания маршрута планировщик отдает его другой части поискового робота – пауку. Паук регулярно обходит документы по заданному маршруту. Если сайт на месте, то есть работает и доступен, паук выкачивает запланированные в маршруте документы. Он определяет тип скачанного документа (html, pdf, swf и т. п.), кодировку и язык, а затем отправляет данные в хранилище.
Там программа разбирает документ по кирпичику: очищает от html-разметки, оставляя чистый текст, выделяет данные о местоположении каждого слова и добавляет их в индекс. Сам документ в исходном виде также остается в хранилище до следующего обхода. Благодаря этому пользователи могут найти в «Яндексе» и посмотреть документы, даже если сайт временно недоступен. Если сайт закрылся или документ был удален или обновлен, «Яндекс» удалит копию со своих серверов или заменит ее на новую.
Поисковый индекс, данные о типе документов, кодировке, языке и сохраненные копии документов вместе составляют поисковую базу. Она обновляется постоянно, но, чтобы это обновление стало доступно пользователям, ее нужно перенести на базовый поиск. Базовый поиск – сервера, которые отвечают пользователям на запросы. Туда переносится не вся поисковая база, а только ее полезная часть – без спама, дубликатов сайтов (зеркал) и других ненужных документов.
Обновление поисковой базы из хранилища основного робота попадает в поиск «пакетами» – раз в несколько дней. Этот процесс создает дополнительную нагрузку на сервера, поэтому производится ночью, когда к «Яндексу» обращается на порядок меньше пользователей. Сначала новые части базы помещаются рядом с такими же частями из прошлого обхода. Затем они проверяются по целому ряду факторов, чтобы обновление не ухудшило качество поиска. Если проверка прошла успешно, новая часть базы заменяет собой старую.
Робот Orange предназначен для поиска в реальном времени. Его планировщик и паук настроены так, чтобы находить новые документы и выбирать из огромного их количества все, хоть сколько-нибудь интересные. Каждый такой документ Orange сразу обрабатывает и выкладывает на базовый поиск. Срочных документов не очень много по сравнению с общим объемом Интернета, поэтому обновление базы в реальном времени можно делать и при дневных нагрузках на сервера.
Можно сказать, что поиск в Интернете состоит из двух больших частей. Первая – когда «Яндекс» ищет различные документы в Интернете и составляет поисковый индекс. Вторая – когда система ищет ответ на конкретный запрос пользователя в уже подготовленной поисковой базе…
Безусловно, поиск с помощью индекса ускоряет процесс ответа пользователю, как, например, предметный указатель в книге помогает быстрее найти нужное слово. Но размеры самого «предметного указателя» в поиске – огромны. Чтобы обрабатывать такие объемы данных и делать это быстро, «Яндекс» использует тысячи серверов. Сервера объединены в кластеры и даже в кластеры кластеров. Архитектура поиска «Яндекса» устроена так, что к уже существующим серверам можно легко добавлять новые – для новых данных из постоянно растущего Интернета.
Все пользовательские запросы сначала попадают в компьютерную систему «метапоиск». Метапоиск обрабатывает каждый запрос в реальном времени – выясняет все необходимые данные про запрос (из какого региона он был задан, к какому классу относится и т. п.), проводит лингвистическую обработку. Затем метапоиск проверяет, формировались ли в последнее время результаты поиска для этого запроса. Результаты поиска по часто задаваемым запросам некоторое время хранятся в памяти метапоиска, а не формируются каждый раз заново. И если вновь пришедший запрос оказался популярным, метапоиск покажет пользователю заранее сохраненные результаты.
Если же ответа в памяти нет, то метапоиск передает запрос на сервера другой компьютерной системы – «базового поиска». На базовом поиске хранится слепок Интернета, по которому ищет «Яндекс», – поисковая база. Она разбита на части, которые хранятся на разных серверах – искать ответ одновременно по нескольким частям базы данных быстрее, чем по всей базе целиком. Кроме того, у каждого сервера есть несколько копий. Это позволяет распределять нагрузку и не терять данные – если один из серверов не сможет своевременно ответить, информация все равно найдется на дублирующих серверах. Из тысяч серверов базового поиска метапоиск выбирает наименее загруженные – таким образом, чтобы вместе они содержали целую поисковую базу.
Каждый из серверов отдает список документов, в которых есть слова из запроса, обратно в метапоиск. Там они объединяются, ранжируются с помощью технологии «Матрикснет» и попадают на страницу результатов поиска. Благодаря такой организации поиска «Яндекс» может отвечать пользователю за доли секунды…
Чтобы вникнуть в суть вопроса, человеку нужно подумать, а поисковой системе – провести лингвистический анализ запроса. Только потом можно приступать к поиску. Именно при анализе запроса система решает, по каким словам и словоформам нужно искать. Например, по запросу «гостиницы в Иркутске» недостаточно найти документы с таким сочетанием слов. Хорошие ответы могут оказаться в документах со словами «отели в Иркутске», «иркутские гостиницы», «Иркутск гостиница» и т. д. Анализируя вопрос пользователя, система определяет язык запроса, проводит морфологический разбор каждого слова, выбирает нужные для поиска словоформы и отсекает лишние.
На весь анализ запроса – определение языка, разбор слов, поиск синонимов и т. д. – уходят лишь доли секунды.
Анализ запроса начинается с определения языка. Например, слово «дружина» в русском языке означает «военная рать», а в украинском – и «военная рать», и «жена». Чтобы понять, что имеет в виду пользователь, нужно выяснить, на каком языке он общается с поисковой системой. Для этого «Яндекс» смотрит, какой алфавит использует человек, какие в запросе есть характерные сочетания букв и слова. Так, по запросу «дружина князя Игоря» «Яндекс» будет искать информацию о войске, а по запросу «дружина князя Iгоря» – еще и о жене полководца, княгине Ольге.
Кроме того, при определении языка поисковая система обращает внимание на регион пользователя и язык интерфейса. Например, если человек задает вопрос из Украины и использует интерфейс на украинском языке, это будет дополнительным фактором, чтобы посчитать запрос украиноязычным.
Определив язык запроса, «Яндекс» переходит к морфологии. Знание морфологии позволяет находить документы, содержащие разные формы одних и тех же слов. Например, по запросу «стали для ножей» «Яндекс» будет искать документы, в которых есть не только сочетание «стали для ножей», но и «сталь для ножа», «ножи сталь» и т. д. Анализируя запрос, «Яндекс» составляет список возможных словоформ для каждого слова.
По словоформе, которая есть в запросе, не всегда можно точно сказать, какое слово имел в виду человек. Например, в запросе «стали для ножей» «стали» – это не только существительное «сталь», но и глагол «стать». И в одном случае («стали для ножей») нужно искать формы существительного, а в другом («стали выпадать волосы что делать») – формы глагола. В такой ситуации нужно избавиться от неоднозначности, то есть снять омонимию. Омонимия – это совпадение слов (словоформ) с разным лексическим значением.
Чтобы выбрать для поиска наиболее вероятный список форм, система обращается к статистике совместной встречаемости слов и грамматических признаков. Например, в морфологическом разборе по запросу «стали для ножей» система выберет для поиска слово «сталь». Во-первых, потому что по статистике слово «сталь» чаще встречается со словом «нож», чем «стать». А во-вторых, потому что существительное в именительном падеже (в данном случае, «сталь») часто сочетается с существительным в родительном падеже («ножей»).
Для сбора статистики «Яндекс» использует Национальный корпус русского языка и свои собственные корпуса, где собрано огромное количество текстов в электронном виде.
После снятия омонимии поисковая система уже не будет искать слова, которые пользователь точно не имел в виду. В то же время, если ограничить поиск только словами из запроса, в поле зрения поисковой системы не попадут многие нужные документы. Ведь для одного и того же понятия в разных текстах могут использоваться разные слова, например на одном сайте может стоять аббревиатура, а на другом – полное наименование.
Для того чтобы учесть все возможные варианты, «Яндекс» расширяет запрос, добавляя другие формулировки с тем же смыслом. Например, вместе со сложносокращенным «физтех» «Яндекс» будет искать и официальное «Московский физико-технический институт», а по запросу «установка скайп» – еще и английское skype. Точно так же «Яндекс» добавляет в запрос разные написания чисел («Петр I» и «Петр Первый»), близкие по смыслу однокоренные слова, варианты написания и синонимы. Так, если в запросе есть «воронежский», система может добавить к нему однокоренное «Воронеж», к «авто-сервис мицубиши» – «автосервис мицубиси», а к «ветерок» – похожее «бриз». Выбирая, какое слово добавить, а какое нет, «Яндекс» смотрит, как часто это слово встречается с другими словами запроса – и в вопросах пользователей, и вообще в текстах. Однокоренные слова и синонимы система берет из соответствующих справочников и словарей, часть из которых «Яндекс» сам составляет специально для таких случаев.
Анализируя запрос, поисковая система выделяет в нем различные объекты – географические названия, имена людей, названия организаций и т. д. Например, если поисковая система поймет, что «Сергей Зубов» – это человек, она не будет расширять фамилию «зубов» «зубным» или искать стоматологические клиники. А если в запросе «аптеки на Парке культуры» система обнаружит, что «Парк культуры» – это место, она учтет это при ранжировании: в результатах поиска первые строчки займут документы, в которых слова «парк» и «культуры» идут подряд. Для выделения устойчивых фраз и объектов «Яндекс» тоже составляет различные справочники – например, словарь топонимов (географических названий), словарь имен и фамилий, справочник организаций, словарь устойчивых словосочетаний. Получив запрос, система каждый раз проверяет по справочникам, есть ли в нем устойчивые словосочетания.
Анализируя запрос, поисковая система всегда проверяет его на грамотность. По статистике «Яндекса», около 12 % запросов содержат ошибки. Это могут быть опечатки, орфографические ошибки или абракадабра, которая получается при неправильной раскладке клавиатуры. Если искать ровно то, что указано в поисковой строке, человек так и не получит нужный ему ответ – ведь на большинстве сайтов слова все-таки написаны грамотно. Поэтому те слова, в которых часто допускают ошибки («агентство», «винегрет») или по которым нет хорошего ответа на вопрос, «Яндекс» сразу же исправляет и показывает ответ уже на исправленный запрос. Разумеется, предупреждая пользователя, что запрос был исправлен.
В некоторых случаях сложно определить, ошибся пользователь или нет. Например, ресторан «Фуджияма» очень похож на вулкан Фудзияма, а фамилия футболиста Массад на «Моссад» (а также на «массаж» и крепость «Массада»). В таких случаях, показывая ответ на исходный вопрос, «Яндекс» спрашивает, не ошибся ли человек и не хочет ли он увидеть ответ на исправленный запрос. Есть еще один вариант – когда система не уверена, опечатался человек или нет, она покажет на одной странице результатов поиска ответы сразу на два вопроса – на заданный, в котором предположительно есть опечатка, и на исправленный.
На работу с ошибками и весь лингвистический анализ уходят доли секунды. За это время система успевает определить язык запроса, разобрать каждое слово, найти синонимы и устойчивые сочетания и в конечном счете решить, документы с какими словами нужно искать.
Последние три года работы под крышей CompTek-матки стали периодом особенно бурного развития для проекта Яndex, который Волож постепенно начал готовить к отделению от CompTek – вместе с собственным отделением. По воспоминаниям ветеранов «Яндекса», на тот момент «вся команда портала составляла около десяти человек».
К моменту старта проекта Яndex поисковая система умела выполнять проверку уникальности найденных документов (исключение копий в разных кодировках), Яndex учитывал морфологию русского языка (и поиск по точной словоформе), осуществлял поиск с учетом расстояния (в том числе в пределах абзаца – точное словосочетание), а тщательно разработанный алгоритм оценки релевантности (соответствия ответа запросу) учитывал не только количество слов запроса, найденных в тексте, но и его относительную частоту для данного документа, расстояние между словами и положение слова в документе.
Практически одновременно со стартом Яndex в публичном пространстве появился раздел «Сказки» (наблюдения за содержанием русского Интернета). Первая опубликованная 30 сентября 1997 г. сказочная история называлась «Web – гуманизм или чернуха?». Выглядела она довольно пафосно.
Web – гуманизм или чернуха? Сегодня можно точно ответить – гуманизм, со счетом 404 на 134. Перевес (в три раза) – солидный для нашего времени. Запустив наконец свою поисковую машину, мы получили удобную возможность исследовать русский Web «от себя лично», не думая о том, что иностранные поисковые машины не понимают русские кодировки и вообще далеко от России, а также не мучаясь над заданием всех склонений и спряжений.
Любители изящной словесности и ревнители русского языка скажут, что сравнение «чернуха – гуманизм» слишком прямолинейно и недостаточно для столь сильного вывода. Попробуем привести ряд примеров, которые нам представляются убедительными. Простейшая антитеза: «добро – зло». Получается: добро (3710) + добрый (10 098) + доброта (593) = 14 401; зло (3153) + злой (3248) + злость (453) = 6854. Соотношение: 14 401 / 6854 = 2,1.
Аналогичные примеры: счастье (6876) + счастливый (5672) = 12 548; несчастье (1301) + несчастливый (208) + несчастный (3082) = 4591, соотношение: 12 548 / 4591 = 2,73; хорошо (28 174) + хороший (26 295) = 54 469, плохо (12 134) + плохой (6697) = 18 831, соотношение: 54 469 / 18 831 = 2,89.
Более сложный пример: любовь (17 699) + любимый (9101) + любить (19 836) = 46 636 перекрывает не только: ненависть (1313) + ненавистный (306) + ненавидеть (1460) = 2079, но и большой список вроде – секс (2816) + сексуальный (2803) + порно (123) + порнографический (339) + эротика (554) + эротический (1072) + порнуха (96) = 6803. Соотношение: 46 636 / (2079 + 6803) = 5,25.
Набор слов: мерзавец (305) + негодяй (559) + подлец (394) + сволочь (669) = 1927 перекрывается набором – вера (7013) + надежда (10 450) + любовь (17 699) = 35 162. Даже если убрать все имена собственные (наш язык запросов отличает слова с большой и маленькой буквы), то получится Вера (2570) + Надежда (2375) + Любовь (3357) = 8302, остается 35 162 – 8302 = 26 860. А «неверия» всего 141. Соотношение: 26 860 / (1927 + 141) = 11,26.
Приведенные результаты оказались для нас самих приятны и несколько неожиданны. Все, кого заинтересовала эта «занимательная арифметика», могут провести собственное исследование, зайдя на сервер http://yandex.ru и воспользовавшись поисковой системой Яndex-Web. Можно делать и более сложные эксперименты, сравнивать словосочетания (язык запросов Яndex позволяет находить два слова подряд).
Запрос «хороший / 1 человек» («хороший» стоит сразу до или сразу после слова «человек», и все это во всех склонениях) находит 308 документов. Запрос «(плохой, нехороший) / 1 человек» («плохой» или «нехороший» сразу до или после «человек») – 85. Даже вместе со словом «редиска» (46 документов) проигрывает более чем в два раза.
Мудрено (я бы даже сказал – заумно), а главное – натянуто, выспренно. Похоже, инициаторы «Яндекса» хотели успокоить себя и потенциальных пользователей Интернета – на тот момент, конечно, изысканную, образованную и чаще моральную публику, которая, соответственно, мучилась нравственными вопросами (в отличие от подавляющего большинства пользователей нынешней Сети).