Поиск лидеров мнений в Twitter с помощью надстройки NodeXL для Excel

Цель: отследить лидеров мнений в Twitter по определенной тематике. Конечно, для этого можно было применитьпошаговый алгоритм поиска инфлюенсеров, но он времязатратен и не очень-то эффективен для русскоязычного сегмента. В этот раз мы призвали на помощь надстройки для MS Excel.

Как найти лидеров мнений в Twitter с помощью NodeXL

Что такое NodeXL

Для решения задачи мы использовали надстройку для MS Excel под названием NodeXL. Устанавливается просто, требует.Net Framework.

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

В этом, кстати, инструмент проигрывает Topsy, где обрабатываются все твиты за историю социального сервиса. Зато функционал NodeXL позволяет провести анализ и визуализацию связей аккаунтов.

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

При первом запуске NodeXL следует дать доступ к работающему аккаунту Twitter

Сбор данных

Возьмем популярный 4-5 июля 2015 года хэштег #селфископом. В эти дни в Киеве начала работу новая патрульная служба, и селфи с охранниками правопорядка стало мастхев-фото в телефоне каждого киевлянина. Отправляем запрос NodeXL парсить Twitter по запросу #селфископом, но из-за кириллицы наш запрос в программе выглядит так:

Отправляем запрос NodeXL парсить Twitter по запросу #селфископом

Ищем только тех людей, кто в своих твитах использовал этот тег, в «друзья» к ним не заглядываем, так как можно попасть на ограничения API.

В итоге получаем таблицы:

  • Edges — это собственно твиты (от кого, кому, содержание, время, и прочее);
  • Vertices — аккаунты, за которыми была замечена нужная активность.

Ищем только тех людей, кто в своих твитах использовал этот тег, в «друзья» к ним не заглядываем, так как можно попасть на ограничения API

Генерируем предварительный график связей, чтобы визуализировать эти данные:

Генерируем предварительный график связей

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

Стоит отметить, что таблицы NodeXL генерирует самостоятельно, а вот для построения графика нужно выбрать соответствующую опцию:

Стоит отметить, что таблицы NodeXL генерирует самостоятельно, а для построения графика нужно выбрать соответствующую опцию

Анализ данных

Для решения нашей задачи мы анализировали далеко не все показатели, а только метрики по «входящим», «исходящим» связям и метрику eigenvector centrality

Для решения нашей задачи мы анализировали далеко не все показатели, а только метрики по «входящим», «исходящим» связям и метрику eigenvector centrality, которая выделяет «важность» того или иного аккаунта для данной тематики.

Включаем автозаполнение полей таблицы, чтобы в соответствии с «важностью» менялся размер точки на графике и подписывались имена аккаунтов. Заодно и отключаем отображение колец self-loop. После чего группируем все ноды (узлы аккаунтов) в кластеры:

Включаем автозаполнение полей таблицы, чтобы в соответствии с «важностью» менялся размер точки на графике и подписывались имена аккаунтов

Обновляем нашу визуализацию:

Обновляем нашу визуализацию

Каждый цвет — отдельная группа аккаунтов, которые имеют между собой определенную связь. Чтобы навести порядок, отделяем группы друг от друга, все «одиночки» (которые ни с кем не общаются, а просто вещают) попадают в отдельную группу:

Каждый цвет — отдельная группа аккаунтов, которые имеют между собой определенную связь

Сразу можно выделить явных «авторитетов»: usebassykyivlbagatskaradiosvobodapavlosheremt. Но есть и интересный аккаунт mmaxbot. Тоже множество связей, но вот авторитетности нет (обратите внимание на диаметр точки). Почему так? Потому что связанная с ним группа аккаунтов не имеет внешних связей, в то время как другие имеют связи между собой, то есть взаимодействуют не только с «центром». Это характерный симптом сети ботов.

Ниже показаны связи между разными нодами:

Связи между разными нодами

Связи между разными нодами аккаунтов

Группа аккаунтов справа — это пользователи, которые затвитили хэштег (возможно, сами сделали селфи с копом и выложили твит) без какой-либо связи с другими аккаунтами.

Также можно отследить, как хронологически распространялся тег #селфископом пользователями Twitter. Для этого используем динамические фильтры (dynamic filters):

Также можно отследить, как хронологически распространялся тег

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

Подведем итог.

Что можно узнать, используя NodeXL?

  1. Выявить интенсивность раскрутки или популярность той или иной новости/тренда.
  2. Увидеть основные аккаунты лидеров мнений.
  3. Проанализировать хронологию распространения новости в Twitter.

Это далеко не все возможности сервиса. Пробуйте построить свои графики в NodeXL и делитесь результатами в комментариях.

Автора автора