Как мы используем API Giphy для тематических гифок в футбольном статус-боте

    Наш отдел аналитики в свободное время выращивает бота, который находит интересные закономерности в футбольных статистических данных и пишет про это статусы у нас на Sports.ru. Робота зовут FRED, получается у него примерно так:

    image

    Творчество робота пока не отличается разнообразием (всего пара десятков типов фактов), но каркас уже готов. Базовая модель такая:

    1. Раз в час запускается Python-скрипт, который анализирует ближайшие футбольные матчи, если они есть.

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

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

    3. Из всех фактов выбираются три самых интересных, которые постятся через API в ленту статусов Sports.ru и в твиттер. В общие ленты Sports.ru (со всеми новыми статусами) могут попасть только особо интересные факты, остальные видят только подписчики.

    Улучшение с помощью «добивок»

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

    Для начала мы решили добавить к фактам «панчлайн»: слово-добивку в конце, подчеркивающее эмоцию высказывания. Эту манеру в футболе популяризовала компания Opta, поставляющая статистические данные в том числе и для Sports.ru. Разумеется, аккаунты Opta ведутся реальными людьми.

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

    Улучшение с помощью гифок

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

    Фиксированный список гифок аналогично словарю панчлайнов, впрочем, делать не хотелось. Гифки быстро приедаются, их долго собирать и нужно регулярно менять — значит, такое решение плохо масштабируется (в идеале робот должен работать для разных стран и на разных языках). К счастью, есть проект Giphy с большой базой хорошо протегированных и подходящих нам по формату гифок — и, что особенно прекрасно, у Giphy есть свое бесплатное API.

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

    image

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

    image

    Что мы планируем делать с Фредом дальше:

    1. Серьезно расширить количество возможных фактов.

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

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

    С радостью ответим на вопросы и примем предложения по развитию статус-бота.
    • +15
    • 5,3k
    • 5
    Sports.ru 53,14
    Компания
    Поделиться публикацией
    Комментарии 5
      +1
      А картинки к каждому факту как подбираются?
        +1
        Каждому типу факта сопоставлено несколько тегов из базы Giphy. Берем случайно что-то из последних по этим тегам с помощью их API.
        0
        Много (процентов 90) каких-то печальных новостей. А есть хорошие?

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

      Самое читаемое