Как это устроено · · 2 минут чтения

Год назад мы писали: как архив издания становится источником тем

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

У Myslo.ru архив с 2000 года — больше 230 тысяч статей. В нём есть ответы на вопросы, которые редакция задаёт себе каждое утро: писали ли мы об этом, чем кончилась та история, что обещал чиновник. Но никто не помнит двадцать лет заметок, а поиск по сайту требует знать, что искать. Povod делает архив частью ленты: не человек ищет в архиве, а архив сам находит человека.

Как архив попадает в систему

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

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

Движение по вашим темам

Первое, что делает архив, — радар. Каждый свежий пост из ленты сверяется с архивом; если близость к старому материалу высокая, пост попадает в блок «Движение по вашим темам» на утреннем экране. Так всплывают продолжения сюжетов, которые тлеют неделями: ситуация с топливом, ремонт водовода, стройка, о которой все забыли на следующий день после подписания контракта.

Радар легко превратить в шум, и первые версии его производили. Рутинные серии — сводки о беспилотниках, прогнозы погоды, ежедневные ориентировки — совпадают с сотнями старых заметок. Поэтому пост, у которого в архиве больше десяти похожих статей, из радара исключается. Спорные пары дополнительно проверяет модель: векторы иногда путают рубрику с историей, и «дети в парке» оказываются похожи на «выгул собак в парке».

Год назад мы писали

Второй блок берёт публикации годичной давности вокруг сегодняшней даты и ранжирует их по реальным просмотрам из Метрики. Это не ностальгия, а проверка обещаний. «Пешеходный мост у Малых Гончаров отремонтируют за 170 миллионов» — а сегодня в черновиках редакции лежит «На мосту Малые Гончары пропала люковая крышка». Материал, которого нет ни у кого, уже лежал в архиве; его нужно было только связать.

Тот же механизм отвечает на вопросы «появился ли обещанный Wi-Fi на остановках» и «чем кончилось дело об аварийном доме». Год спустя это готовый повод.

Ссылки на себя, а не на конкурента

Третье применение — в черновике. Когда редактор собирает материал из нескольких постов, система подбирает статьи из архива по теме и предлагает их как ссылки. Порог показа высокий: ссылка появляется, только если близость выше 0,45, ниже редактор её не увидит. По теме водоснабжения система подобрала восемь материалов за два года, и ни один не был случайным. Если близких материалов нет, список остаётся пустым.

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

Что ещё умеет архив

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

Двадцать лет заметок — это не склад, а память редакции. Мы просто сделали так, чтобы она отвечала сама.

Комментарии Tolstoy Comments · нейромодерация