Книга: Яндекс для всех

3.1.1. С чего начинались Яндекс. Новости

3.1.1. С чего начинались Яндекс. Новости

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

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

Но новостных источников становилось все больше. И уже к 2003 году их количество перевалило за сотню (сегодня партнерами Яндекс. Новостей являются почти 2000 интернет-СМИ, и в их числе — информационные агентства широкого профиля, электронные версии печатных СМИ, сетевые издания, сайты телеканалов и радиостанций, тематические, специализированные и региональные ресурсы). Стало ясно, что первоначальный способ сбора и индексирования новостей уже перестал себя оправдывать, появилось множество дублирующих новостей, выполненных по типу copy+paste. Пришло время менять принцип сбора и обработки новостей.

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

Как собирают сюжеты

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

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

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

Затем матрица попарной близости обрабатывается алгоритмом кластеризации с тщательно подобранным радиусом. Для того чтобы увеличить связность крупных сюжетов, мы дополнительно использовали кластеризацию второго уровня, собирая атомарные кластеры в более крупные. Такой алгоритм дает полноту около 85–90 % (то есть не более 15 % сообщений ошибочно не попадают в сюжеты) и обеспечивает точность около 95 % — в сюжетах редко встречаются сообщения на другие темы.

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

Немного сложно, особенно в плане используемых терминов, но суть все же понятна.

Ранжирование сюжетов

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

Безусловно, основными факторами, влияющими на ранжирование, являются свежесть и размер сюжета (не новости как таковой!). Свежесть — это время публикации новостей в сюжете, размер сюжета отражает общий интерес СМИ к конкретной теме. Чем интереснее для читателей тема, тем большее количество СМИ опубликует новость и даст свои комментарии. Кроме того, учитываются количество и схожесть сообщений от конкретных изданий. Не секрет, что издания, как и веб-сайты, имеют разный рейтинг, складывающийся из многих показателей. Такие издания, как РБК, Inopressa.ru, Лента. ru будут иметь более высокий рейтинг по многим новостным тематикам, нежели региональные издания, чей рейтинг может быть выше в части новостей, касающихся лишь их региона.

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

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

Оглавление книги


Генерация: 1.926. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз