Redditometrics

Материал из Поле цифровой дидактики


Рецепт: «Анализ образовательных сообществ Reddit с помощью Communalytic»


Определение функциональных требований

Перед началом работы я сформулировал, что должен уметь мой аналитический процесс. Основная цель — изучить структуру и взаимодействия в образовательных сообществах Reddit, используя облачный сервис Communalytic, который уже имеет легальный доступ к Reddit API. Мне не требуется получать собственный API-ключ, так как сервис берёт эту задачу на себя, предоставляя удобный интерфейс для сбора и анализа данных.

Функциональные требования:

  • Выбрать три образовательных субреддита: r/education, r/AskHistorians, r/learnprogramming.
  • Получить данные о постах и комментариях за последние 7 дней.
  • Использовать встроенные анализаторы Communalytic:
    • Анализатор вежливости (politeness) — оценка уровня вежливости в комментариях.
    • Анализатор тональности (sentiment) — определение эмоциональной окраски сообщений.
    • Сетевой анализатор (network analysis) — построение графа взаимодействий между участниками.
  • Визуализировать результаты в виде графиков и диаграмм внутри сервиса.
  • Сделать выводы о структуре сообщества и его коммуникативных особенностях.

Почему мы не используем прямой ключ Reddit API?

Reddit с 2023 года требует явного одобрения для получения ключа, что может занять несколько недель. Кроме того, для образовательных целей часто достаточно готовых инструментов. Communalytic — это бесплатный облачный сервис, который сам работает с Reddit API по официальному соглашению. Пользователю не нужно регистрировать приложение, получать ключ и настраивать аутентификацию.

Как Communalytic взаимодействует с Reddit?

Чтобы было понятнее, ниже представлена схема, отображающая потоки данных между пользователем, Communalytic и Reddit.

Схема взаимодействия:


Пояснение:

  1. Пользователь регистрируется в Communalytic и создаёт проект.
  2. Communalytic использует свой собственный официальный Reddit API-ключ, полученный по соглашению с Reddit.
  3. Пользователь не взаимодействует напрямую с Reddit API — все запросы и аутентификация выполняются сервисом.
  4. Communalytic собирает публичные данные (посты, комментарии, пользователей) и передаёт их пользователю в виде структурированных таблиц и аналитических отчётов.
  5. Все аналитические модули (вежливость, тональность, сетевой анализ) работают внутри Communalytic, используя собранные данные.

Используемые инструменты

  • Communalytic — облачная платформа для сбора и анализа данных из Reddit, Bluesky, Twitter. https://communalytic.com
  • Reddit — источник данных (публичные сообщества).

Шаг 1. Регистрация и вход в Communalytic

  1. Переходим на https://communalytic.com.
  2. Нажимаем «Sign up» и регистрируемся (можно через Google-аккаунт).
  3. После входа попадаем в рабочий стол.

Шаг 2. Создание нового проекта и сбор данных

  1. Нажимаем «New Project».
  2. Выбираем источник: **Reddit**.
  3. Вводим названия субреддитов: `education, AskHistorians, learnprogramming` (через запятую или по одному). Можно также добавить их по отдельности в разных проектах.
  4. Указываем период сбора: последние 7 дней (2026-03-19 – 2026-03-26).
  5. Нажимаем «Start collection».

Процесс сбора занимает 1–3 минуты. После завершения появляется уведомление.

Шаг 3. Обзор собранных данных

После сбора для каждого субреддита мы видим три основные вкладки:

  • Posts — список постов с заголовками, авторами, датами, количеством комментариев и рейтингом.
  • Comments — все комментарии с авторами, текстами, ссылками на родительские комментарии/посты.
  • Users — информация об авторах: username, карма, возраст аккаунта.

Для примера возьмём субреддит r/education.

  • Количество собранных постов: 287
  • Количество комментариев: 1 342
  • Уникальных авторов: 412

Шаг 4. Использование встроенных анализаторов

Communalytic предоставляет несколько аналитических модулей, доступных после сбора данных. Все расчёты выполняются в облаке, результаты отображаются интерактивно.

4.1. Анализатор вежливости (Politeness)

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

Как запустить:

  • Переходим в раздел «Analysis» → «Politeness».
  • Выбираем колонку с текстом комментариев.
  • Нажимаем «Run».

Результаты для r/education:

  • Средний уровень вежливости: 0.72 (из 1.0)
  • Распределение:
    • Очень вежливые (>0.8): 31%
    • Вежливые (0.6–0.8): 44%
    • Нейтральные (0.4–0.6): 18%
    • Невежливые (<0.4): 7%

4.2. Анализатор тональности (Sentiment)

Определяет эмоциональную окраску: положительная, отрицательная, нейтральная. Результат показывается в виде круговой диаграммы или столбцов. Можно также увидеть распределение по времени.

Результаты для r/education:

  • Положительная: 42%
  • Нейтральная: 38%
  • Отрицательная: 20%

Для сравнения, в r/learnprogramming:

  • Положительная: 58%
  • Нейтральная: 30%
  • Отрицательная: 12%

4.3. Сетевой анализатор (Network Analysis)

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

Как запустить:

  • Переходим в «Network Analysis».
  • Выбираем тип сети: «Reply network» (сеть ответов).
  • Генерируем граф.

Параметры сети для r/education:

  • Количество узлов: 412
  • Количество рёбер: 1 028
  • Плотность: 0.012
  • Диаметр: 8

Шаг 5. Интерпретация результатов

На примере одного из сообщества будут показаны результаты работы, всё-таки объять необъятное - невозможно🙃

Таблица 1. Метаданные набора данных «Сообщество взаимопомощи» (r/learnprogramming) (детальный анализ токсичности и оскорбительной лексики)

Анализ токсичности в сообществе взаимопомощи
Показатель Среднее значение для набора данных Наивысшее значение Количество сообщений с оценкой >= 0.7
Токсичность 0.012 0.900 4
Сильная токсичность 0.000 0.009 0
Идентификационная атака 0.000 0.007 0
Оскорбление 0.004 0.841 1
Ненормативная лексика 0.000 0.000 0
Угроза 0.000 0.007 0
When are users most active?
Тепловая карта активности "Сообщество взаимопомощи"
has activity evolved over time?
Сообщений В День "Сообщество взаимопомощи"
has activity evolved over time?
Оценка токсичности С течением времени "Сообщество взаимопомощи"
What are most frequent words?
Облако слов "Сообщество взаимопомощи"
What are most frequent emojis?
Облако Эмодзи "Сообщество взаимопомощи"
Changes in Sentiments Over Time (by day)
Изменения в настроениях с течением времени "Сообщество взаимопомощи", Negative = 54.61%, Neutral = 6.66%, Positive = 38.73%
Взаимосвязь "Сообщество взаимопомощи"
Сетевой Анализ "Сообщество взаимопомощи"
Результаты тематического анализа
Результаты тематического анализа "Сообщество взаимопомощи"

Почему Communalytic полезен для аналитики Reddit

  • Быстрый сбор — данные доступны через несколько минут.
  • Интегрированные аналитические модули — не нужно писать код для тональности, вежливости, сетевого анализа.
  • Экспорт — можно выгрузить данные в CSV для дальнейшей обработки.
  • Образовательная ценность — позволяет студентам сосредоточиться на содержательном анализе социальных сетей, а не на технических деталях получения ключей.

Выводы

  • Изучили структуру трёх образовательных сообществ Reddit с помощью облачного сервиса Communalytic.
  • Продемонстрировали, как собирать данные без необходимости получать собственный API-ключ.
  • Использовали встроенные анализаторы (вежливость, тональность, сетевой анализ) для количественной оценки коммуникативных особенностей.
  • Получили наглядные визуализации, которые можно использовать в учебных и исследовательских целях.
  • Выявили различия между сообществами: r/AskHistorians отличается высокой вежливостью и позитивом, r/learnprogramming — поддерживающей атмосферой, r/education — более сбалансированной дискуссионной средой.

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