Аналитика сообщества с помощью VK API

Материал из Поле цифровой дидактики
Параметр Описание
Описание Приложение для анализа активности участников сообщества VK. Система собирает данные о лайках, комментариях и репостах через VK API, рассчитывает индекс активности пользователей и формирует рейтинг самых активных участников сообщества.
Область знаний Информатика, Анализ данных, Социальные сети, Веб-технологии, Программирование
Близкие понятия Аналитика социальных сетей, Анализ вовлеченности аудитории, Social Media Analytics
Среда разработки VK API, Python, Pandas, Matplotlib, Requests

Приложение "Аналитика активности участников сообщества VK"

Ссылка на проект: развернуто на localhost


Диаграмма работы приложения "Аналитика сообщества VK"


Обучающие материалы по работе с VK API

  1. VK API: получение постов сообщества
  2. Работа с лайками через VK API
  3. комментариев к постам через VK API
  4. Основы работы с VK API
  5. Обработка и анализ данных с помощью Python и Pandas

Описание проекта

Веб-страница предназначена для анализа активности пользователей в сообществах социальной сети VK. Система автоматически получает данные о взаимодействиях пользователей с постами сообщества (лайки, комментарии и репосты) через VK API.

На основе этих данных рассчитывается индекс активности каждого пользователя, который позволяет определить наиболее вовлечённых участников сообщества.

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

🎯 Цель проекта: Создать инструмент аналитики для выявления самых активных участников сообщества VK и анализа уровня вовлеченности пользователей на основе данных социальной сети.

Демонстрация работы приложения

Запуск приложения

После запуска приложения пользователь вводит короткое имя сообщества VK и выбирает количество постов для анализа. После нажатия кнопки «Анализировать» система обращается к VK API и собирает данные о лайках и комментариях пользователей.

Рейтинг активных участников

На основе полученных данных формируется рейтинг пользователей. Активность рассчитывается по формуле:

  • лайк = 1 балл
  • комментарий = 3 балла

Приложение выводит таблицу с наиболее активными участниками сообщества.

График активности пользователей

Для визуализации результатов строится график активности, который показывает уровень вовлеченности пользователей.

Типы взаимодействий

Также приложение показывает распределение типов взаимодействий пользователей с контентом сообщества.

Граф взаимодействия пользователей

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

Узлы графа представляют пользователей, а рёбра показывают случаи, когда пользователи участвовали в обсуждении одного и того же поста. Размер узла отражает уровень активности пользователя.


Показатель Как измеряется (R, NetLogo) Смысл метрики
Число узлов и число связей Измерение - в R (g-имя_сети) - length(V(g)) + length(E(g)) Если рассматривается двудольный граф, то отдельно указывается численность узлов каждого типа. Для R > bipartite.projection.size(net)

$vcount1 - 388, $ecount1 - 17759, $vcount2 - 806, $ecount2 - 118132

Смысл - Исходное знание того, сколько узлов и связей в анализируемом графе.
Плотность – это отношение числа имеющихся рёбер графа к максимально возможному количеству рёбер данного графа. D = n существующих связей/n максимально возможных. Под плотностью понимается доля наличных связей от потенциально возможных, так что в пустой сети плотность равна нулю, а в полносвязной – единице. Измерение 2 * L / (g * (g - 1 )) - где L - число связей, а g - число вершин в графе. В R - graph.density(g) Чем больше связей, тем активнее осуществляется взаимодействие между узлами. Плотность - показатель активности
Компонент Число компонентнов - несвязанных между собой фигур на поле совместной деятельности Чем больше компонентов, тем меньше связанность сети, тем выше вероятность, что какая то информация не доходит до участников и они видят отдельные фрагменты общего поля.
Клика - группа взаимосвязанных участников, подграф, где каждая вершина связана с другими вершинами Измерение

В NetLogo biggest-maximal-cliques - наибольшая клика в foreach nw:biggest-maximal-cliques [ask ? [bank_color] ] R - largest.cliques(net) - показывает наибольшие клики и узлы в этих кликах

Количество клик присутствующих в графе – это мера количества существующих подгрупп в сети. Смысл - высокий уровень кооперации между участниками группы.
Центральность - это отдельный раздел центральность и централизацию Измерение - отдельно измеряется локальный показатель - центральность каждого узла. Кроме того - централизация - насколько наиболее центральный узел превосходит по показателю центральности другие узлы. Смысл для одномодального графа участников - кто обладает наибольшим влиянием, кто выполняет связующую функцию. Распределение узлов по центральности - насколько делегирована власть внутри графа? Меру заметности актора в сети (неориентированном графе) называют центральностью. Групповые показатели центральности носят название индексов централизации. Они являются мерами изменчивости или неравенства индивидуальных показателей в графе.
Центральность по степени Измерение degree(g)

order(degree(g))

Смысл - Degree centrality gives a higher score to a node that has a high in/out-degree
Центральность по близости Измерение - closeness(g)

order(closeness(g))

Closeness centrality gives a higher score to a node that has short path distance to every other nodes
Центральность по посредничеству Измерение. Метод оценки центральности по посредничеству для вершины предложен Л. Фриманом и заключается в нахождении доли самых коротких путей, соединяющих все пары вершин, которые проходят через данную вершину. Это сумма вероятностей того, что другие акторы в своих взаимодействиях будут прибегать к посредничеству данного актора. Показатель стандартизуется делением на максимально возможную величину – (n-1)(n-2)/2. Центральность по посредничеству является глобальной характеристикой вершины и имеет более интересную интерпретацию, чем другие индексы центральности. Показатель определен на несвязных графах. Показатель учитывает лишь кратчайшие пути от вершины к вершине и основан на предположении, что при наличии между двумя

вершинами нескольких коротких путей равной длины каждый из них используется с равной вероятностью. R - betweenness(g)

Чем выше индивидуальный показатель сетевой центральности по посредничеству, тем выше вероятность того, что данный участник обладает значительным социальным капиталом и системными компетенциями, позволяющими ему контролировать информационные потоки внутри системы совместной сетевой деятельности. Групповой индекс центральности по посредничеству равен нулю в том случае, когда все индивидуальные показатели равны, и 100, если в графе доминирует одна вершина. Чем ниже групповой индекс, тем ниже централизация - децентрализация
Eigenvector centrality evcent(g)$vector

order(evcent(g)$vector)

Смысл - Eigenvector centrality gives a higher score to a node if it connects to many high score nodes
Централизация - это отдельный раздел центральность и централизацию. Групповые показатели центральности носят название индексов централизации. Они являются мерами изменчивости или неравенства индивидуальных показателей в графе. Измеряется относительно тех же показателей центральности по степени, близости, посредничеству. По причинам математического свойства наиболее популярны групповые индексы Фримана по степени, близости или посредничеству. Каждый из этих показателей равен сумме отклонений индивидуальных показателей от максимального наблюдаемого, отнесенной к теоретически возможному максимуму сумм отклонений. Смысл для одномодального графа участников - насколько неравномерно распределена власть-влияние внутри графа. Групповые индексы равны нулю в том случае, когда все индивидуальные показатели равны, и 1, если в графе доминирует одна вершина. Групповые индексы не зависят от размера графа.
Кластер - это отдельный раздел про кластеризацию Измерение - отдельно измеряется локальный показатель - коэффициент кластеризации каждого узла Смысл
Локальный коэффициент кластеризации transitivity(g, type="local")

order(transitivity(g, type="local")) Netlogo - turtle nw:clustering-coefficient - local clustering coefficient of the turtle.

Смысл - Local cluster coefficient measures how my neighbors are inter-connected with each other, which means the node becomes less important.
Коэффициент кластеризации - глобальный transitivity(gm, type="global") # Global cluster coefficient Коэффициент кластеризации достигает высокого уровня у тех узлов, которые включены в состав групп. Рыночные структуры и их аналоги часто характеризуются более равномерно распределёнными по всей рыночной структуре значениями коэффициента кластеризации, что связано с автономных характером каждого из узлов. Чем выше значение группового (глобального) показателя коэффициента кластеризации, тем выше вероятность того, что между участниками осуществляется взаимодействие.