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 | |||
|- | |- | ||
| | | Идентификационная атака || 0.000 || 0.007 || 0 | ||
|- | |- | ||
| | | Оскорбление || 0.004 || 0.841 || 1 | ||
|- | |- | ||
| | | Ненормативная лексика || 0.000 || 0.000 || 0 | ||
|- | |- | ||
| | | Угроза || 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.
Схема взаимодействия:
Пояснение:
- Пользователь регистрируется в Communalytic и создаёт проект.
- Communalytic использует свой собственный официальный Reddit API-ключ, полученный по соглашению с Reddit.
- Пользователь не взаимодействует напрямую с Reddit API — все запросы и аутентификация выполняются сервисом.
- Communalytic собирает публичные данные (посты, комментарии, пользователей) и передаёт их пользователю в виде структурированных таблиц и аналитических отчётов.
- Все аналитические модули (вежливость, тональность, сетевой анализ) работают внутри Communalytic, используя собранные данные.
Используемые инструменты
- Communalytic — облачная платформа для сбора и анализа данных из Reddit, Bluesky, Twitter. https://communalytic.com
- Reddit — источник данных (публичные сообщества).
Шаг 1. Регистрация и вход в Communalytic
- Переходим на https://communalytic.com.
- Нажимаем «Sign up» и регистрируемся (можно через Google-аккаунт).
- После входа попадаем в рабочий стол.
Шаг 2. Создание нового проекта и сбор данных
- Нажимаем «New Project».
- Выбираем источник: **Reddit**.
- Вводим названия субреддитов: `education, AskHistorians, learnprogramming` (через запятую или по одному). Можно также добавить их по отдельности в разных проектах.
- Указываем период сбора: последние 7 дней (2026-03-19 – 2026-03-26).
- Нажимаем «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 |








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