Наbra Analytics Tools: аудитория хабов

Исследуем аудиторию Перед каждым автором на Хабре встает вопрос: «В какие же хабы разместить статью»? Безусловно, ответ прежде всего зависит от темы. С другой стороны, многие статьи достаточно широкого профиля и приходится тщательно выбирать в какие три хаба написать. Сам Хабр такого инструментария для анализа не предоставляет. А что делают обитатели хабра, когда инструмент нужен, а его нет? Они его пишут!Тогда же мне пришла мысль, что неплохо было бы иметь простой визуализатор, который бы выдавал простую статистику по хабам и их совместной аудитории, например вот так:89c3faed8b0f54488a2a72763230fbf2.pngПо картинке сразу видно, насколько пересекаются читатели различных хабов и имеет ли смысл заменить какие-либо из них.Представим, что мы хотим написать в хаб медиа и рассчитываем, а не стоит ли разместить статью в хаб Статистика в IT? Для того чтобы рассчитать целесообразность, необходимо найти пересечение аудитории хабов:aa23285edca74e8e9c301c712e53b05e.pngМы видим, что, фактически, подавляющее количество читателей хабов видит статьи и там и там, а это хороший сигнал о том, что возможно стоить рассмотреть имеющиеся альтернативы.

Общее применение Зачем еще может понадобиться такой инструмент? (Автор не нашел лучшего аналога для слова tool.) Допустим, что вы представитель какой-либо компании и хотите посмотреть как много читателей определенного хаба подписались на корпоративный блог после написания статьи. Например вы собираетесь написать Проверка фреймворка Qt 5 и хотите посмотреть сколько человек из хаба Qt подписались на корпоративный блог PVS студии, тогда решение построить две диаграммы «до» и «после» следующего вида (тут приводится только «после»):3fa4385057e32266734c6c04e8bf6584.pngЕсли по графику общая тенденция не слишком видна, то наш tool должен также предоставлять текстовую информацию о пересечении, в духе:57% of pvs-studio(company) intersects with qt_softwareИ хаб, и корпоративный блог Есть на Хабре такие компании, у которых присутствует и корпоративный блог, и собственно хаб, посвященный компании. Например у Яндекса: блог и хаб. Аудитория блога 11к, а хаба 85к, а значит казалось бы зачем размещать в корпоративном блоге, если уже поместили в хаб? Наверняка читатели блога и хаб читают, при соотношении-то 1 к 8 по читателям. Проверим же эту догадку:994b2ca8a7ed4f1ae6e57229a225fe5b.pngКак можно заметить, примерно половина читателей корпоративного блога не читают общий хаб, а значит размещать в оба хаба имеет смысл.Общий и технический блог А бывает и такое, что есть общий хаб, например, Вконтакте и технический хаб Вконтакте API и встает вопрос, а имеет ли смысл постить в оба? Не будет ли аудитория второго полностью входить в первую? И это несложно проверить!81d41cce36641da5a522298181a529a7.pngОтсюда следует, что догадка оказывается неверной, существуют определенный круг людей читающих технический хаб Вконтакте API и не читающий общий хаб Вконтакте.Документация, код, данные И тут, конечно же, внимательный читатель восклицает: а что со всех этих графиков простому хабра-автору? Действительно от одних только графиков приведенных выше пользы мало, но польза есть от инструмента, который их будет строить для автора! Настал момент предоставить первый (и пока единственный) tool в серии Habra Analytics Tools — Venn diagrams for Habrahabr: весь код, документация и примеры доступны через github.Сам инструмент доступен в виде скрипта на python (с пачкой библиотек) и для тех, у кого нет желания ничего настраивать и скачивать замечательные библиотеки matplotlib_venn и urllib3 — доступны бинарники для трех платформ. (Автор приносит свои извинения за размер файлов — сделано всё с помощью pyinstaller, который запихивает все библиотеки в бинарник, но надеется, что для читателей полчаса свободного времени (который бы ушел на настройку и скачивание библиотек) важнее лишних 50МБ.)

Tool доступен в следующих версиях: исходники (python) и исполняемые файлы (все библиотеки включены).

python скрипт venn.py и папка src/; необходимо установить библиотеки:pip install beautifulsoup4 progress urllib3 matplotlib_venn venn.exe для Windows venn.elf для Linux venn.osx для Mac OS Также необходимо скачать архив data.7z (~15МБ, unzipped ~ 200МБ) и распаковать его в той же директории, что и скрипт. Далее в зависимости от скаченной версии необходимо вызывать python venn.py, ./venn или venn.exe, будем приводить первый вариант в статье.Скрипт является консольным, поэтому его важнейшей командой является help, доступный через флаги -h, --help:python venn.py -hпример вывода на экран:77838ee0dbe69381298d2085b36cf5a0.pngПройдемся же по ключевым флагам и опциям:

Создание диаграммы python venn.py -d space programming fidoилиpython venn.py --draw space programming fidodaa5c37680bb51cf0534e8eb215d5350.pngЕсли данные не присутствуют ( в датасете собраны все доступные хабы на 26 апреля 2014), то программа автоматически проверит наличие данных на хабре и начнет скачивание, примерно 15-20 минут на хаб. Пример сообщения о скачивании:9088931b105b1fe67a2806535309dda5.pngИспользуемые имена хабов Для каждого хаба в программе используется соответствующее имя из ссылки на этот хаб habrahabr.ru/hub/space — для хаба Космонавтика, space — это имя в программе.Вывод доступных имен хабов и их полные названия, все операции производятся по коротким латинским именам из списка (они же используются в url на хабре)python venn.py --hubsВ идеале используется вместе с командой grep:578ba7ebd0c7b125029187d612e38b8f.png

Базовая статистика Создание диаграммы вместе с базовой статистикойpython venn.py --stats -d space programming fidoили вывод только базовой статистики без диаграммы: ключ --onlystats или -opython venn.py -o space programming fido4880f62c68b19ef4fc096ade0c462d05.pngХабы и компании Как уже было отмечено ранее, yandex — это корпоративный блог и хаб, чтобы устранить неоднозначность используется ключ:--company Пример:python venn.py -d yandex yandex --company 2Первый хаб будет воспринят как обычный хаб (по умолчанию), а второй как блог компании.Другие команды Удаление хаба из списка (не удаляет данные)python venn.py --removehublink spaceДобавление хаба в список (не скачивает данные)python venn.py --addhublink space

Обновление данных хаба, скачивает данные ~15-20 минутpython venn.py --updatehub space

Диаграммы и\или статистика без заголовка про пиццу и котятpython venn.py -s -d space programmingдобавление компании и её скачивание данных (также обновляет данные, если уже что-то скачено)pytnon venn.py --downloadcompany yandex

Заключение Вашему вниманию представлена самая первая альфа версия одного из инструментов для анализа хабра-данных. Комментарии, пожелания и всяческая поддержка, а особенно идеи широко приветствуются. Безусловно, если tool, окажется хоть в какой-то мере полезным, то необходимо расширить список доступных функций (например, сделать графический интерфейс — irony хотя кому это нужно? /irony), «причесать код» — автор отдает себе отчет, что написанный код ужасен и должен быть переработан.Данный tool может служить вспомогательным инструментом для оценки аудитории перед размещением статьи или анализом аудитории корпоративного блога.

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

Идеи для следующих tools Монитор статей: после написания статьи нужно будет вызвать тулзу monitor $article_id и она будет записывать и рисовать изменение просмотров (плюсов, etc) во времени, а так же shares and likes в социальных сетях и возможно комментарии читателей Предпочтения пользователей хаба: пусть мы выбрали какой-нибудь хаб hub1 и нам интересно, в каких хабах читатели еще состоят? Каково распределение их вкусов? Какой хаб «ближе всего» к данному, а какой «дальше»? Бонус — диспозиция читателей хабов С++, Python и Java Дзен-символ языков программирования:3bc27aeea60cc735fabdf0eccd2e0e45.png

© Habrahabr.ru