#Локо - Что писали о Локомотиве в твиттере
Вот и закончилось первое полугодие сезона 2016/2017.
За это время болельщиками было выражено множество различных мнений об игре Локомотива и о переменах в клубе. Вы, наверное, замечали, что после поражений эти отзывы чаще носили отрицательный характер, а после важных побед наоборот положительный? Можно говорить, что окраска отзывов коррелирует с общей успешностью и привлекательностью клуба в определенный период времени.
Это утверждение вызвало у меня особый интерес, и я решил выяснить - так что же писали люди о нашем клубе за последние полгода, какие настроения витали в стане болельщиков все это время, что думали люди о команде?
Итак, для анализа этого требуется - один твиттер, один хештег #локо и немного свободного времени. Твиттер позволяет получить все твиты по хештегу за последние 5 месяцев. За промежуток 5 июля - 5 декабря было сделано 590 твитов с хештегом #Локо (регистр букв не имеет значение). Это примерно 4 твита в день - с таким числом уже можно делать аналитику!
Для анализа эмоциональной окраски твита я решил применить самый современный существующий подход - нейронную сеть. За основу была взята модель, умеющая предсказывать эмоциональную окраску отзыва к фильму на Imdb (американский Кинопоиск). К сожалению, эта модель не умеет работать с русскими текстами, поэтому с помощью Яндекс.Переводчика все твиты были переведены на английский. Для каждого твита было получено число, выражающее его окраску по шкале от 0 до 100. 0 - текст очень негативный, 50 - нейтральный, 100 - очень положительный.
Тут стоит упомянуть две вещи. Первая - конечно, такая модель не совсем честно оценивает окраску твитов, ведь она была обучена на отзывах к фильму и часто реагирует на специфичные слова "мне понравилось", "замечательный", "скучный", "усыпляющий"и др., которые можно встретить в отзывах к фильму. Во-вторых - не пугайтесь, я не обрабатывал все твиты вручную, весь процесс конечно же был автоматизирован :)
Дальше дело осталось за малым. Полученные оценки текстов были преобразованы по формуле (x-50)*|x-50| - таким образом нейтральный отзыв теперь имеет оценку 0, положительные - положительную оценку, а отрицательные отрицательную + с помощью возведение в квадрат была учтена "степень уверенности" в оценке, ведь чем дальше отзыв от нейтрального, тем увереннее модель. Затем результаты были сглажены так, чтобы в каждый момент времени получалась средняя эмоциональная окраска твитов за последние 2 недели. Результат вы можете видеть ниже:
Все значимые события как на ладони. Краткая хронология первой половины сезона Локомотива:
Как только было объявлено о возможной отставке Смородской - появились твиты с воодушевляющими текстами.
Перед первым туром ЧР болельщики, как обычно, были полны оптимизма.
И вот, наконец после долгих лет ожидания, произошла отставка ОЮ. Она была встречена резким ростом числа восторженных отзывов.
Но результаты в виде невнятной игры с большим числом нулевых ничьих умерили пыл болельщиков, и этот спад смог остановить только приход Семина.
Особо стоит отметить 7 сентября - резкий скачок в окраске отзывов. Очень приятно, что люди помнят ту команду (ХК Локомотив), и даже статистика говорит о тех теплых чувствах, с которыми люди вспоминают этих ребят.
Касательно футбола - именно с этого периода Локомотив начал сильно пробуксовывать, и это продолжалось вплоть до игры с армейцами.
Победа 1-0, первая за столько лет! Я сам там был, я сам это видел!
Эйфория от победы вселила в нас уверенность, дубль Майкона с Анжи в одной из следующих игр бурно обсуждался в твиттере.
Видно, что настроения довольно резко сменились, и уже в игре с Томью Локомотив получил очень хвалебные отзывы.Можно сказать, что сейчас в рядах болельщиков преобладает сдержанный оптимизм.
В целом команда показывает хорошую игру уже больше месяца, продолжается борьба в кубке, избавляемся от балласта. Я сам, как уже говорил раньше, являюсь сторонником Семина. Мне нравится, что он делает в команде. Может его методы и устарели, но чувствуется, что это наш тренер, локомотивский. И Локо - это не просто его место работы, это его клуб. Посмотрим, что будет дальше.
Спасибо всем за внимание! Ждем весны!
Примеры некоторых самых положительных и самых отрицательных твитов (слева - оценка эмоциональной окраски):
1156 - "5 лет без великой команды. 5 лет без Локомотива. 07.09.2011"
1089 - "Понравилась игра, Хенти молодцом сегодня!"
1024 - "Палыч рулит!!!! Но и Крылья молодцы! С победой"
-729 - "Болельщикам # Локо сочувствую.. Уход Самедова стал переломным не в пользу паровозов..."
-625 - "У Локо ничего не получается в нападении, у Зенита практически ничего... Вот и весь первый тайм..."
-324 - "Возвращаемся с матча домой..уставшие и расстроенные..ничья с Арсеналом...это нечто..хреново.. Локо во что ты играешь?"
P.S: использовалось фото с сайта клуба fclm ru
Сейчас эту задачу решают с помощью нейронных сетей. Про них можно долго рассказывать, но в целом достаточно знать, что саму модель подсмотрели в биологии - есть много клеток (нейронов) и связей между ними. Такая сеть пропускает через себя входящий набор чисел и выдает какой-то другой выходящий - конкретно в нашем примере на выходе число от 0 до 100. Задача обучения сводится к подбору параметров связей, чтобы на выходе получалось то, что нам нужно.
Напрямую со словами в таком подходе мало кто работает, каждое слово обычно заменяют набором чисел таким, что чем более близки по смыслу слова, тем более похожи эти наборы чисел (это тоже делается нейронной сетью). В общем вся модель оперирует числами, причем очень большим набором (связей в сети может быть 100 000, и каждое слово само по себе представляется набором из 1000 чисел)
Можно самому попробовать веб интерфейс, туда вводишь текст н аанглийском и он предсказывает окраску - https://transcranial.github.io/keras-js/#/imdb-bidirectional-lstm