- PVSM.RU - https://www.pvsm.ru -
В прошлой статье, посвященной интернет-разведке [1], был кратко рассмотрен процесс сбора и анализа данных по конкретному человеку. Так как тема вызвала большой интерес, продолжаем начатое дело и в этой статье рассмотрим, как можно собирать информацию о целой группе пользователей.
Рассмотрим следующую ситуацию: новый пользователь Хабра, получив «минус в карму» еще до первого своего поста/комментария на ресурсе, решает узнать, а кто же скрывается за изощренно придуманными никами пользователей Хабра и задается вопросом: who is Mr./Ms. Habraman?
Будем следовать разведывательному циклу:
Шаг 1. Постановка задачи
Задача может быть сформулирована так: требуется составить портрет среднестатистического пользователя Хабра.
Шаг 2. Планирование
2.1 Гипотезы
Для эффективного сбора информации нам потребуются рабочие гипотезы, исходя из которых мы поймем, какие данные нам нужны и где их искать. Чтобы сформулировать гипотезы зачастую необходимо некое предварительное знание о предмете.
Для получения предварительной информации о пользователях Хабра наш неискушенный пользователь обращается к сайту Lurkmore, который, как известно отличается многосторонним освещением любого явления в современном мире. Озадаченный негативным настроем автора заметки [2] наш интернет-разведчик формулирует следующие гипотезы относительного того, кем все таки является среднестатистический пользователь Хабра:
Обратите внимание, что при формулировании гипотез мы стараемся соблюдать правило MECE (mutually exclusive and collectively exhaustive, что можно перевести как «взаимоисключающий и совместно исчерпывающий список»).
2.2 Данные и их источники
Исходя из набора сформулированных гипотез, мы теперь можем определить, какие данные нам понадобятся, чтобы их можно было проверить.
Соответственно нам интересны следующие данные:
Хорошим источником подобной информации, как мы знаем, являются социальные сети, в частности российская сеть «ВКонтакте», в которой наш герой находит группу Хабрхабр [3] с почти 670 тысячами подписчиков и с девизом, косвенно подтверждающем одну из сформулированных гипотез: «НЛО с вами!».
Шаг 3. Сбор данных
3.1 Инструменты
Для доступа к данным подписчиков группы в сети «ВКонтакте» нам понадобятся:
3.2 Получение доступа к данным
Для выгрузки данных пользователей социальной сети «ВКонтакте» необходимо использовать VK API. Благодаря Дмитрию Сорокину [7], создавшему библиотеку vkR, работа с VK API из среды R доступна теперь любому уверенному (да и неуверенному) пользователю.
Для того, чтобы иметь возможность обращаться VK API необходимо сгенерировать так называемый маркер доступа [8] (access token).
3.3 Процесс сбора данных
Так как в комментариях к прошлой статье уважаемые читатели показали большой интерес к практической составляющей процесса сбора данных, мы приведем здесь пример кода на языке R, на основе которого при желании можно полностью воспроизвести описываемые далее шаги.
Для работы с данными пользователей группы Хабхабр в сети «ВКонтакте» потребуется ее уникальный идентификатор, который легко определить, наведя указатель мыши, например, на кнопку «Написать сообщение» и, увидев, ссылку следующего вида «vk.com/im?sel=-20629724 [9]». Цифры 20629724 и являются нужным ID.
#устанавливаем библиотеку vkR
>install.packages("vkR")
#загружаем библиотеку и теперь можем обращаться к ее методам напрямую
>library(vkR)
#подключаемся с помощью добытого маркера доступа
>setAccessToken(access_token = "000000000..000")
#выгружаем в переменную userids список всех идентификаторов пользователей группы
>userids<-getGroupsMembersExecute(group_id = "20629724", progress_bar = TRUE)
#формируем выборку из 3000 случайно выбранных элементов списка
>sampleids<-sample(userids, 3000, replace=FALSE)
#выгружаем данные по выбранным пользователям
#описание полей: https://vk.com/page-1_27445058
>groupdata<-getUsersExecute(sampleids,fields = "sex,bdate,city,country,education,universities,relation,interests,movies,tv,books,games,about", drop=FALSE, flatten = FALSE, progress_bar = TRUE)
#подсчитываем количество инопланетян, девушек и парней
> qofmale_female<-as.data.frame(table(groupdata$sex))
#смотрим, что получилось
> qofmale_female
Var1 Freq
1 0 2
2 1 853
3 2 2145
#добавляем столбец с подписями для красивой гистограммы
qofmale_female$name<-c("Инопланетяне", "Девушки", "Парни")
#добавляем столбец с кодами цветов
qofmale_female$color<-c("#51b828", "#ff5d4e", "#2879a8")
#выводим диаграмму
> barplot(qofmale_female$Freq, names.arg = qofmale_female$name, col=qofmale_female$color, border = NA)
#выгружаем в CSV-файл на память или для дальнейших манипуляций в MS Excel/LibreOffice
write.csv2(qofmale_female, "C://girlsboysaliens.csv")
3.4 Выборка
Интернет-разведка должна быть эффективной и результативной, поэтому «перелопачивать» все 670 тысяч пользователей – не очень хорошая идея. Нам нужна достаточно большая выборка, сформированная случайно. Нашему герою нравится цифра 3000 и он останавливается на ней. Учитывая рекомендации социологов [10], такого объема хватит даже в случае, если не все профили будут полностью заполнены.
Шаг 4. Обработка данных
Благодаря R, обработка данных оказалась довольно простой. Единственная проблема, с которой столкнулся наш разведчик оказалась проблема с кодировкой: после выгрузки данных из сети «ВКонтакте» в консоли RStudio текст корректно не отображался, но проблему удалось решить следующим образом:
Наверняка, есть более оптимальное решение этой проблемы, кто знает – делитесь информацией в комментариях к статье.
Шаг 5. Анализ информации
Приступим к анализу полученных данных.
5.1 Парни, девушки и инопланетяне
Если посмотреть на распределение по половым признакам можно увидеть следующую картину:
Мы видим, что примерно 2/3 составили парни, 1/3 — девушки, а вот инопланетян, которые не смогли определиться с принадлежностью к какому-либо определенному полу, в нашей выборке оказалось всего двое. Гипотезу 2 можем смело отбросить.
5.2 Города и страны
Проверяя первую гипотезу, включающую предположение, что среди пользователей Хабра преимущественно жители наших двух столиц, посмотрим на распределение по городам.
Данное поле в своей анкете указали всего 2092 пользователя из нашей выборки. Список из топ-15-городов получился таким:
Две столицы занимают первые позиции, но общее количество пользователей, указавших Москву и Санкт-Петербург – менее четверти от 2092. Соответственно, чисто столичным Хабр назвать сложно.
Что же касается стран, в которых проживают наши пользователи, то видно, что в основном речь идет о России, Украине, Казахстане и Беларуси.
5.3 Возраст аудитории
Интересно посмотреть на распределение по годам рождения пользователей Хабра из выборки и увидеть, что возраст основной массы пользователей находится в диапазоне 20-30 лет.
Предположение о возрасте из первой гипотезы можно смело исключить, а вот соответствующее предположение из третьей гипотезы подтверждается.
5.4 Интересы
Посмотрим, чем живут наши пользователи. Это можно сделать, как минимум, проведя анализ следующих полей, указанных в профилях: interests,movies,tv,books,games,about. Дополнительно можно провести анализ групп, в которых наши пользователи состоят, благо у нас есть замечательный метод getGroupsForUsers(). С анализа групп и начнем. Ниже представлены топ-15 групп сети «ВКонтакте», в которых любят состоять пользователи Хабра.
Как видим, информационные технологии и программирование занимают не последнее место в жизни пользователей Хабра, но явно только на них никто не зацикливается.
Строить гистограммы по значениям полей interests,movies,tv,books,games,about имеет смысл после долгого сопоставления того, что указали пользователи, с общими категориями, но на это времени, к сожалению, нет. Поэтому пройдемся по некоторым моментам, которые бросились в глаза.
1. По всей видимости значительное число аудитории Хабра не жалует телевизор, но это не факт, а предположение, так как мы видим всего порядка 20 чел, и мы не знаем, сколько людей предпочли не сообщать об этом, хотя поступают именно так.
2. Литература – самая разнообразная, и что характерно, произведения Дональда Кнута включены в список любимых книг на ночь далеко не всеми.
3. Интересы отличаются исключительным разнообразием, и, что особенно радует, – спорт занимает не последнее место.
5.5 Просто любопытство: ТОП-25 имен
Проводя анализ собранных данных, стало интересно посмотреть, а какие самые распространенные имена у пользователей Хабра, в большинстве своем старающихся выбрать загадочный nickname. Получилась вот такая таблица из ТОП-25 имен из нашей выборки:
Шаг 6. Подготовка отчета и презентация результатов
Таким образом, подводя итоги проведенного небольшого исследования, можно смело описать портрет среднестатистического Мr. или Ms. Habraman:
Соответственно из сформулированных трех гипотез третья оказалась самой вероятной. Первые две были отброшены.
Проверка данных
Когда кто-нибудь представляет свой анализ, да еще и сообщает свои выводы, настоящий разведчик всегда перепроверит. Давайте это сделаем и мы – сопоставим полученные результаты с уже доступными данными из альтернативных источников.
Сверим с данными, которые представлены в разделе «Пользователи» [11], доступного любому пользователю Хабра.
Совпадения:
Расхождения:
Сверим также с данными, похожего исследования, проведенного в 2014-м году пользователем Apatic [12]: Кто подписан на Хабрахабр? [13]
Совпадения:
Заключение
Вот мы и разобрались как разведывательный цикл можно применить и для анализа информации о сообществах, что будет полезно и блогеру для понимания аудитории читателей, и маркетологу, анализирующему, кто покупает продукцию у конкурентов.
Литература
Update:
У ряда читателей появились сомнения в том, что группа «Хабрхабр» в сети «ВКонтакте» значительно пересекается с группой пользователей самого Хабра. Чтобы проверить этот тезис, предлагаю небольшой опрос.
Автор: Эшелон
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vkontakte/236808
Ссылки в тексте:
[1] прошлой статье, посвященной интернет-разведке: https://habrahabr.ru/company/echelon/blog/319334/
[2] заметки: http://lurkmore.to/%D0%A5%D0%B0%D0%B1%D1%80%D0%B0
[3] группу Хабрхабр: https://vk.com/habr
[4] R: https://www.r-project.org/
[5] vkR;: https://github.com/Dementiy/vkR
[6] RStudio: https://www.rstudio.com/
[7] Дмитрию Сорокину: https://github.com/Dementiy
[8] необходимо сгенерировать так называемый маркер доступа: http://all-for-vkontakte.ru/catalog/access-token-vkontakte
[9] vk.com/im?sel=-20629724: https://vk.com/im?sel=-20629724
[10] рекомендации социологов: https://www.surveymonkey.ru/mp/sample-size/
[11] «Пользователи»: https://habrahabr.ru/users/
[12] Apatic: https://habrahabr.ru/users/apatic/
[13] Кто подписан на Хабрахабр?: https://habrahabr.ru/post/242951/
[14] Источник: https://habrahabr.ru/post/320270/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.