во внутренней базе уже было опубликовано несколько новостей. И эту информацию хотелось бы видеть среди горячих тем – настаивал редактор.
Через некоторое время Саше удалось выяснить, что загвоздка была в коротких новостях. Молниях. Как правило, они состояли из одного предложения. После приведения к нормальной форме часть текста отсекалась. Но и отказаться от этой операции было невозможно.
Спустя ещё несколько дней стало понятно, что критичность не в этом. Если новость изначально содержала мало слов, вероятность смыслового пересечения с другими новостями и попадания в мыльный пузырь события снижалась.
Четверг был дождливым и серым. Прохожим не верилось, что наступила весна. Саша с неудовольствием вышел на ланч и вымок до нитки. Он мрачно закурил сигарету. Редакторы рядом взахлёб обсуждали экономический кризис в Венесуэле.
«Не хочется выкатывать на форум полусырой продукт», – подумал Саша и погрузился в чтение статей по кластеризации текстов. Ближе к вечеру идея была найдена. Необходимо было учитывать связи слов между собой. Строго говоря, семантические связи. Разделяют связи двух типов. Одни слова следуют друг за другом. Так слово «человек» связано со словом «счастлив».
Другие слова взаимозаменяемы. Бывает, что человек счастлив в «работе». И тот же человек счастлив в «жизни». Не аксиома. Как много мы знаем о счастье?
Бесполезно было анализировать тексты по отдельности. Это давало хорошие результаты лишь в некоторых отдельных случаях. В реальности каждая новость существовала в контексте общего информационного пространства.
– Саша, ты во сколько сегодня домой? – спросил Никита. – Уже 8 вечера.
– Сегодня не поеду. Хочу кое-что доделать. И дождь проливной. Позже схожу в душ для корреспондентов.
– Неплохая идея. Я, пожалуй, тоже останусь до завтра. Может быть, тогда пиццу закажем?
– Давай. Как насчёт сицилийской?
– Ок.
На сайте сервиса RusVectores Саша нашёл семантические модели русского языка, обученные на больших массивах текстов. Каждое слово представляло собой огромный вектор. Саша запустил скачивание, когда курьер службы доставки сообщил, что ждёт у входа в здание.
Саша и Никита спустились вниз. Дождь упрямыми капельками прыгал между лужами.
– Давай отнесём пиццу наверх и покурим, – предложил Никита.
Дым сигарет был влажным и успокаивающим. Мимо проносились автомобили. Люди за рулем очень торопились. Одни ехали с работы. От бессмысленности проектов и однообразия задач. От незнакомой болтовни openspace. От непонимания руководства.
«Любая профессия на 80% это скучная рутина. Даже космонавтика. Весело только отдыхать на мальдивах с девками, но на это нужны деньги и периодически скучно работать».
Постил неизвестный автор на форуме программистов в долгой пробке. А ведь это опасно. Как минимум для дорожного движения. Другие возвращались домой. Поужинать с семьей. Провести вечер с друзьями. Обнять своего ребёнка.
– Представь, ты узнал, что сегодня последний день твоей жизни, – начал Саша. – Как бы ты провёл его?
– Странный вопрос. Поиграл бы немного в octopath traveler. А так. Не знаю. Делал бы то же, что и сегодня. Виртуальную модель солнечной системы. Почему нет. Слушай. Ты докурил? У нас пицца остынет.
Следующие несколько часов Саша запускал тесты и соединял составленную из длинных векторов матрицу слов с алгоритмом кластеризации. Ближе к полуночи все сошлось, и короткие новости заняли своё место на экране событий.
Дождя больше не было слышно. Саша поудобнее устроился на пуфике. На планете Нептун за время человеческой жизни мы увидели бы максимум три времени года. Период вращения этого небесного тела вокруг солнца составляет 165 лет. «На Нептуне после зимы всегда приходит весна», – облегченно подумал Саша и заснул.
11
В понедельник Саша увидел на экране событий неожиданную картину. Она полностью не соответствовала реальности.
– Володя, посмотри, у нас все нормально с базой?
– Ок.
Саша спустился выкурить сигарету. Девушка рядом сосредоточено читала с Iphone. И пила амаретто из автомата. Какой приятный запах. Кофе и информация. Многозадачность. Все было как всегда.
– Алгоритм отрабатывает устаревшие данные, – сказал Володя. – Напишу сисадминам, чтобы они поправили.
В обед до цифровой лаборатории долетели невеселые слухи. Увольняли ведущего админа Ваню. Что? А как же две недели? Все работа ложится на Олега?
В коридорах шептались о том, что Ваня майнил диковинные криптовалюты на оборудовании агентства.
– Ване повезло, что его не уволили по статье. Не понимаю, зачем так рисковать ради сравнительно небольшой суммы денег, – удивлялся Володя. – Санек, у Олега сейчас много работы по поддержке основного сайта, и наши задачи не в приоритете. Но он все поправит. Так что бери билеты в Сочи.
Ваня сидел за пустым столом, обхватив голову руками. Не хватало картонной коробки с чашкой и кактусом. Маленькие кусочки сложились в единую мозаику.
«Отказ от бумажных денег. Общество, в котором нет инфляции. Нисходящие и восходящие тренды. Щенячий восторг от того, как цена биткоина ставит новый рекорд. Как не твой кошелёк взломали хакеры. Волны и волны хайпа. Разве было мне до этого дело?
Почему Алена считает меня неуспешным?
Почему я не отвечаю ожиданиям своих родителей?
Я недостаточно амбициозен.
Я недостаточно зарабатываю.
Что ж. Пожалуйста. Теперь я остался без работы. С надеждой, что скандал не докатится до моего следующего руководства.
Я пытался».
Вечером Ваня сдавал пропуск и ключи от кабинета. Девушка-секретарь смотрела на него ласковым взглядом. В отличие от остальных она не задавала удушливых вопросов. С ней было хорошо. Очень странное чувство.
– Никто не одинок в этом мире, – сказала девушка.
– Простите, что вы сказали? – удивился Саша.
– Я закончила. Вы можете быть свободны, – повторила она.
12
Олег коллекционировал стаканчики из-под кофе Starbucks. Их становилось все больше. Они молча смотрели на Олега с гладкой поверхности стола. Олег смотрел на список задач. Обычно по мере того, как день скользил к вечеру, число задач уменьшалось. С уходом Вани все стало с ног на голову.
Олег писал дипломную работу. Год назад колледж неожиданно присоединили к Бауманскому университету. Поэтому на кону оказалось получение вышки. Штука в нашем обществе ценная.
Олег снял очки и протер глаза. «Как же хочется спать», – подумал он и спустился вниз. Саша уже ждал его, чтобы вместе идти на ланч.
– Куда пойдём?
– Шоколадница напротив – мой вариант.
– Все так мрачно?
– Чувак, у меня на все полчаса. С уходом Вани я зашиваюсь по полной.
– Я с четверга на пятницу работал. Решил не ездить домой. Хотя. Мне просто было интересно дойти до результата.
– Так у меня задачи сыпятся с космической скоростью.
– Вы готовы сделать заказ? – подошла официантка.
– Для меня суп дня, спагетти карбонара и маленький капучино, – ответил Саша.
– То же самое, – отозвался Олег не раздумывая.
– Так будет быстрее, – объяснил он, когда официантка ушла. – Санек, у меня есть одна просьба. Я делаю диплом и в нем есть матчасть, с которой мне тяжело разобраться. Препод на консультации сказал: надо использовать машинное обучение. Я сразу вспомнил о тебе.
– А в чем задача?
– Нужно прогнозировать отказ системы по данным её загруженности.
– Так. Так. А в каком виде у тебя данные? Есть история? Какой интервал по времени?
– Данные не проблема,