Понимание твитов об игре с использованием spaCy и Google Cloud Natural Language AI API

Сообщество покемонов счастливо! Или у меня сложилось такое впечатление. 28 января 2022 г. была выпущена последняя игра про покемонов под названием Pokémon Legends: Arceus. Сообщество приняло игру. Они назвали его самой инновационной игрой про покемонов за последние годы, обзоры — лучшее, что сериал видел за последние годы, и я набрал более 100 часов в месяц. Так что да, у меня сложилось хорошее впечатление. Но нравится ли игра другим игрокам? Более того, что они говорят об этом? Я отвечу на эти вопросы данными.

Несколько лет назад сообщество покемонов было расстроено. Во время анонса предыдущей части серии, Pokémon Sword and Shield, разработчик Game Freak сообщил, что не будет включать в игру всех существующих покемонов. Фанатам это не понравилось; они были злы, грустны и разочарованы. Пытаясь количественно оценить этот дискомфорт, я собрал и проанализировал коллекцию твитов, включая хэштеги, связанные с игрой, и обнаружил, что в среднем твиты были слегка негативными. Итак, теперь я хочу компенсировать негативные ощущения от этого эксперимента.

Моя интуиция подсказывает мне, что фанаты наслаждаются этой новой игрой. Но я хотел больше доказательств. Итак, я снова собрал твиты, связанные с игрой, чтобы выяснить, было ли их содержание положительным. В этом новом эксперименте я использовал библиотеку Python для обработки естественного языка (NLP) spaCy, Google Cloud Natural Language API и R language, чтобы обнаружить наиболее часто используемые в твитах существительные и прилагательные, настроение твитов и наиболее часто упоминаемых покемонов. И вот, я представляю результаты моего расследования.

Исходный код расследования можно найти по адресу: https://github.com/juandes/pokemon-legends-tweets.

О данных

В моем наборе данных 173296 твитов, которые я собрал с 4 февраля 2022 года по 27 февраля 2022 года с хэштегами #PokemonLEGENDS или #PokemonLegendsArceus. Большинство твитов являются ретвитами, поэтому я очистил набор данных и получил 40282 уникальных. Тем не менее, вы найдете похожие спам-твиты, которые отличаются несколькими словами. (Я мог бы использовать другие методы, чтобы найти эти случаи, но в конце концов пошел против этого).

Я собирал данные с помощью библиотеки Python Tweepy, и вы можете найти скрипт, который я использовал, в связанном репозитории.

Лучшие существительные и прилагательные

Одной из функций spaCy является тегирование части речи (POS), задача присвоения грамматической категории каждому токену документа. Примеры этих категорий — и те, которые я использовал — это существительные и прилагательные. Напомним, что существительные — это слова, обозначающие объекты (например, дерево), людей, действия, чувства и все, что мы обычно называем вещью, а прилагательные описывают существительные, например, слово большой в предложении. большое дерево. Используя Python и spaCy, я написал скрипт, который просматривает каждый твит, помечая его термины и подсчитывая их появление. Затем я выбрал 15 лучших и представил их на двух диаграммах (рис. 1 и 2), которые вы увидите далее.

Топ-15 существительных — это разнообразная группа, которая, среди прочего, охватывает некоторые игровые механики. Одним из них является «альфа», относящийся к Альфа-покемонам, новому виду красноглазых покемонов, которые крупнее и сильнее своих обычных собратьев. Другие упомянутые механики — это «вспышка», событие, которое порождает рой одних и тех же покемонов в определенном месте, и «блестящий / блестящий», редкий вариант покемона с другим цветом, чем его обычная версия. Твиттеры часто упоминали эти три механики в одном и том же сообщении, чтобы отпраздновать и поделиться своими недавно неуловимыми блестящими альфа-покемонами, редким типом покемонов, частота появления которых увеличивается во время вспышки. При нормальных обстоятельствах шанс найти блестящего покемона составляет 1/4096, но во время вспышки (которая может породить альфа-покемонов) шанс увеличивается до 1/158,2. Так что да, я могу понять, почему люди фальсифицируют своих маловероятных существ в Твиттере.

Верхние прилагательные (показаны выше) положительны. Есть такие термины, как «хороший», «милый», «счастливый», «хороший» и «отличный», которые передают нечеткое теплое чувство. Есть также «блестящий», который мы можем использовать в качестве прилагательного для описания блестящего покемона, например, «покемон блестящий», вместо того, чтобы использовать имя «блестящий покемон». Но среди этих радостных слов выделяется одно — «плохое». Чтобы узнать, что именно плохо, я искал твиты, содержащие этот термин. Однако вместо ненависти я нашел более нечеткие и теплые комментарии, поскольку они не использовали этот термин в негативном ключе. Некоторые твиты восклицали, как сильно они хотят поиграть или поймать блестящего покемона, другие сказали: «Я так отстой» (в игре), а один праздновал, как он победил в «битве с большим плохим боссом». Поздравляю, мой друг!

Анализ настроений

Из приведенных выше прилагательных я могу сделать вывод, что людям нравится игра. Но это субъективный вывод, который испорчен моим представлением о том, что такое положительное прилагательное (здесь я преувеличиваю, но мне нужен предлог, чтобы представить свой следующий метод) и тем, что я увидел после прочтения некоторых твитов. Чтобы обойти эту субъективность, я использовал метод обработки естественного языка под названием анализ настроений. Этот метод оценивает каждый твит числом, измеряющим его преобладающее эмоциональное отношение, что позволяет нам определить, являются ли его чувства негативными, нейтральными. , или положительный. Служба, которую я использовал для анализа тональности, Google Cloud Natural Language API, оценила каждый твит с помощью балла от -1 до 1, где -1 означает в целом негативные эмоции, 0 указывает на низкие или смешанные эмоции. , и 1, положительные эмоции. Например, предложения «Я НЕНАВИЖУ ТЕБЯ, ПАРАС» имеют оценку -0,9, «Сияющий Айпом во время вспышки», 0,0 и «Я люблю выражения в этой игре XD», 0.9.

Среднее значение тональности выборки твитов составляет 0,141. Таким образом, мы могли бы быстро сделать вывод, что многие твиты передают позитивное чувство — то, о чем говорила моя интуиция. (Я сказал «образец», потому что я выбрал 3000 случайных твитов из набора данных, чтобы ускорить процесс сбора оценок, и потому что сервис, который я использовал, платный). Средний балл составляет 0,100 (который также склоняется к положительному), 25-й процентиль равен -0,100, 75-й процентиль равен 0,5, а стандарт отклонение составляет 0,483. На следующей диаграмме (рис. 3) вы найдете гистограмму распределения баллов. Он показывает, что большинство значений попадают в область 0,0 и 0,9, что объясняет высокое стандартное отклонение 0,483. Или, говоря простыми словами, мы могли бы сказать, что есть много нейтральных и положительных твитов, но мало отрицательных.

Прежде чем перейти к следующему разделу, я должен сказать, что искусственный интеллект и, следовательно, алгоритмы НЛП могут быть предвзятыми. Поэтому я не могу с уверенностью сказать, что твиты действительно положительные. Кроме того, поскольку многие системы искусственного интеллекта обучаются на корпусах из обычного текста, такого как Википедия, а не на твитах о покемонах, я ожидаю неточных оценок настроений. В таблице ниже представлены десять твитов и их оценка настроений; быть судьей и дайте мне знать ваши мысли о баллах.

Самые упоминаемые покемоны

Этот последний раздел — чистый фансервис. Я не буду вводить еще одну технику НЛП и не буду упоминать чувства. Нет. Здесь я представлю 15 самых упоминаемых покемонов среди всех твитов. Следуйте за мной к рисунку 4.

Самым популярным покемоном в твитах является Arceus с 2131 упоминанием — почти в шесть раз больше, чем у его преемника Eevee. Но почему-то ожидается, что Arceus будет на вершине, учитывая, что игра названа в его честь. Удаление одноименного покемона из списка дает диаграмму (рис. 5), где Eevee занимает первое место с 170 упоминаниями больше, чем Typhlosion, занявший второе место.

Заключительные слова

Pokémon Legends: Arceus вышла, и все говорят, что это хорошая игра. Его текущий Metascore составляет 83 (из 100), а пользовательский рейтинг — 8,3 из 10. Для сравнения, Metascore предыдущего названия — 73, а пользовательский рейтинг — 5,4. Помимо оценок, шумиха вокруг игры была положительной. Такое впечатление у меня сложилось на Reddit, Discord и Twitter. Чтобы проверить, верна ли моя интуиция, я собрал корпус твитов и проанализировал его с помощью методов НЛП, чтобы узнать, что люди говорят об игре и как они это говорят.

Результат был положительным. Люди в основном говорили о новых функциях игры и хвастались своими блестящими и гигантскими покемонами, используя приятные термины «хороший», «милый» и «счастливый». Затем я воспользовался сервисом анализа настроений, чтобы количественно определить эмоциональное отношение к сообщениям, и снова результаты оказались положительными.

Приятно видеть такое счастливое сообщество.