Redditometrics: различия между версиями

Материал из Поле цифровой дидактики
Нет описания правки
Нет описания правки
Строка 1: Строка 1:




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


'''Определение функциональных требований'''
'''Определение функциональных требований'''
Строка 126: Строка 128:
* Диаметр: 8
* Диаметр: 8


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


На основе полученных данных и графиков можно сделать выводы о сообществе:
На примере одного из сообщества будут показаны результаты работы, всё-таки объять необъятное - невозможно🙃
 
''Таблица 1. Метаданные набора данных «Сообщество взаимопомощи» (r/learnprogramming)''
(детальный анализ токсичности и оскорбительной лексики)
{| class="wikitable sortable"
{| class="wikitable sortable"
|+ Текст подписи
|+ Анализ токсичности в сообществе взаимопомощи
|-
! Показатель !! Среднее значение для набора данных !! Наивысшее значение !! Количество сообщений с оценкой >= 0.7
|-
| Токсичность || 0.012 || 0.900 || 4
|-
|-
! Субреддит !! Вежливость !! Тональность !! Сетевая структура !! Характер сообщества
| Сильная токсичность || 0.000 || 0.009 || 0
|-
|-
| r/education || Средняя (0.72), 7% невежливых || 42% позитива, 20% негатива || Ядро активных участников, плотность 0.012 || Дискуссионное, есть конфликтные темы, но в целом корректное
| Идентификационная атака || 0.000 || 0.007 || 0
|-
|-
| r/AskHistorians || Высокая (>0.85), невежливых <2% || 65% позитива, 10% негатива || Очень плотное ядро, высокая взаимность ответов || Экспертное, строго модерируемое, высокая культура общения
| Оскорбление || 0.004 || 0.841 || 1
|-
|-
| r/learnprogramming || Текст ячейки || Текст ячейки || Текст ячейки || Текст ячейки
| Ненормативная лексика || 0.000 || 0.000 || 0
|-
|-
| Текст ячейки || Высокая (0.79), невежливых 5% || 58% позитива, 12% негатива || Много звёздных структур (новички → эксперты) || Поддерживающее, ориентировано на помощь новичкам
| Угроза || 0.000 || 0.007 || 0
|}
|}
[[Файл:Activity Heatmap.png|обрамить|слева|альт=When are users most active?|Тепловая карта активности "Сообщество взаимопомощи"]]
[[Файл:Posts Over Time.png|обрамить|слева|альт=has activity evolved over time?|Сообщений В День "Сообщество взаимопомощи"]]
[[Файл:Average Toxicity Scores per Day.png|обрамить|слева|альт=has activity evolved over time?|Оценка токсичности С течением времени "Сообщество взаимопомощи"]]
[[Файл:Word Cloud.png|обрамить|слева|альт=What are most frequent words?|Облако слов "Сообщество взаимопомощи"]]
[[Файл:Emoji Cloud.png|обрамить|слева|альт=What are most frequent emojis?|Облако Эмодзи "Сообщество взаимопомощи"]]
[[Файл:Changes in Sentiments Over Time.png|обрамить|слева|альт=Changes in Sentiments Over Time (by day)|Изменения в настроениях с течением времени "Сообщество взаимопомощи", Negative = 54.61%, Neutral = 6.66%, Positive = 38.73%]]
[[Файл:Снимок экрана 2026-03-26 222111.png|обрамить|слева|альт=Взаимосвязь "Сообщество взаимопомощи"|Сетевой Анализ "Сообщество взаимопомощи"]]
[[Файл:Снимок экрана 2026-03-26 222541.png|обрамить|слева|альт=Результаты тематического анализа|Результаты тематического анализа "Сообщество взаимопомощи"]]


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

Версия от 22:31, 26 марта 2026


Рецепт: «Анализ образовательных сообществ 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 и облачными сервисами, но с акцентом на практическую аналитику, а не на технические сложности получения доступа.