
Дмитрий Иванов — директор по проектам компании 'Яндекс' с 2005 года.
Работу в 'Яндексе' начал в 2003 году в качестве руководителя службы Яндекс. Новости. Ранее Дмитрий возглавлял интернет-департамент Фонда эффективной политики, где руководил разработкой и продвижением медиапроектов в Интернете.
Дмитрий окончил исторический факультет МГУ, имеет степень кандидата политических наук.
Глава 3
Читаем новости
3.1. Что такое Яндекс. Новости
В Интернете ищут не только статичную информацию, раз опубликованную и редко изменяющуюся, но и текущую, быстроменяющуюся. И это несмотря на наличие огромного числа привычных информационных источников — радио и телевидения, газет и журналов. С каждый годом все большее количество людей читает текущие новости в онлайне. Для одних такой способ получения информации является наиболее быстрым (например, для игроков на бирже), для других — наиболее удобным (не надо приобретать десятки газет, которые через день будут выброшены). Особенно удобен способ получения новостной информации через Интернет тогда, когда хочется узнать различные точки зрения на одно и то же событие. А в этом случае одного, пусть даже и любимого, сайта бывает недостаточно. Приходится посещать сайты разных информационных агентств или изданий, при этом существует большая вероятность, что наиболее интересные мнения найдены не будут.
Значительно проще следить за новостями с помощью сервиса, который собирает их с различных сайтов, агрегирует по темам, релевантности, времени публикации. Такие сервисы существуют, и их немало. Как правило, это сервисы, которые сами не являются производителями контента. Какому из подобных сервисов отдаст предпочтение тот или иной человек, зависит от возможностей, им предоставляемых, удобства использования, качественности и своевременности подаваемой информации. В число наиболее посещаемых и, следовательно, наиболее удобных и качественных сервисов такого рода, входят и Яндекс. Новости.
3.1.1. С чего начинались Яндекс. Новости
Начало работы с новостными сайтами у поисковика складывалось примерно так же, как и работа с веб-ресурсами. Поисковые роботы обходили новостные сайты, собирали контент, добавляли его в Индекс, после чего посетители поисковой системы могли найти в ней не только информацию из документов, но и из новостей. Отличие было в том, что новостные сайты обновляют свою информацию на порядки чаще, чем иные сетевые ресурсы. Поэтому частота обхода роботами новостных сайтов была значительно выше, доходя для наиболее значимых ресурсов до 5-10 минут. Какое-то время уходило на индексирование, после чего информация становилась доступной для поиска.
Яндекс. Новости открылись в июне 2000 года и включали в поисковую базу информацию из пятнадцати источников. Этот сервис был первой полностью автоматической службой сбора и обработки новостей. Новости не только индексировались и помещались в Индекс, но также раскладывались по тематическим рубрикам. Новостная база стала одной из первых в перечне дополнительных параллельных поисков Яндекса — заголовки новостей можно было получить по результатам поискового запроса на отдельной вкладке результатов поиска.
Но новостных источников становилось все больше. И уже к 2003 году их количество перевалило за сотню (сегодня партнерами Яндекс. Новостей являются почти 2000 интернет-СМИ, и в их числе — информационные агентства широкого профиля, электронные версии печатных СМИ, сетевые издания, сайты телеканалов и радиостанций, тематические, специализированные и региональные ресурсы). Стало ясно, что первоначальный способ сбора и индексирования новостей уже перестал себя оправдывать, появилось множество дублирующих новостей, выполненных по типу copy+paste. Пришло время менять принцип сбора и обработки новостей.
В том море новостей, которое обрушилось на поисковую систему, нужно было выбрать наиболее важные, значимые новости. Это стало одной из первоочередных задач развития сервиса. А для этого необходимо было научиться, во-первых, находить и соединять сообщения на одну тему, а, во-вторых, упорядочивать сообщения по важности — для того чтобы общественно значимые события последних нескольких часов или всего дня оказывались бы максимально экспонированы.
Как собрать в едином сюжете новости, опубликованные в различных источниках? В почтовой службе это легче — есть исходное письмо, и если есть ответы на него, то они 'сцепляются' друг с другом и попадают в одно обсуждение. В новостях все намного сложнее — нет единого названия, тексты сообщений могут отличаться друг от друга весьма значительно. В то же время новости относятся к одному и тому же событию, следовательно, должны попасть в один сюжет. И вот что по этому поводу говорят разработчики системы поиска по новостям:
Центральная задача, которая стояла перед нами, — научиться отождествлять сообщения, относящиеся к одному и тому же сюжету. Очевидно, что эта задача лучше всего решается анализом текста и поиском максимально похожих документов.
Для определения попарной текстуальной близости сообщений мы использовали модифицированный для небольших однородных текстов алгоритм поиска похожих документов и алгоритм нечеткого поиска по кворуму. Как и любой поиск Яндекса, этот алгоритм работает с учетом морфологических вариантов русских и английских слов, причем для агнонимов (то есть 'неизвестных системе слов'), составляющих в Яндекс. Новостях значительную часть словника, используется методика нахождения ближайших морфологических эквивалентов. Для частичного снятия морфологической омонимии в Яндекс. Новостях используются статистические эвристики.
Затем матрица попарной близости обрабатывается алгоритмом кластеризации с тщательно подобранным радиусом. Для того чтобы увеличить связность крупных сюжетов, мы дополнительно использовали кластеризацию второго уровня, собирая атомарные кластеры в более крупные. Такой алгоритм дает полноту около 85–90 % (то есть не более 15 % сообщений ошибочно не попадают в сюжеты) и обеспечивает точность около 95 % — в сюжетах редко встречаются сообщения на другие темы.
Отдельной задачей стало оптимальное представление и аннотирование сюжета: выбор наилучшего заголовка (зависит от его длины, свежести и максимального соответствия теме) и 'цитатной' аннотации, необходимой для короткого и точного описания сюжета. Кроме того, появилась группировка по сюжетам не только текстовых сообщений, но и фото-, аудио- и видеофайлов.
Немного сложно, особенно в плане используемых терминов, но суть все же понятна.
Собрать новости, опубликованные в различных изданиях, в один сюжет — только часть того, что должен предоставить пользователю сервис. И по тематикам распределить — тоже только часть. А что из этих новостей вывести на первый план, что можно оставить в общем списке? Очередная задача — какие