- PVSM.RU - https://www.pvsm.ru -
Перед каждым автором на Хабре встает вопрос: «В какие же хабы разместить статью»? Безусловно, ответ прежде всего зависит от темы. С другой стороны, многие статьи достаточно широкого профиля и приходится тщательно выбирать в какие три хаба написать. Сам Хабр такого инструментария для анализа не предоставляет. А что делают обитатели хабра, когда инструмент нужен, а его нет? Они его пишут!
Тогда же мне пришла мысль, что неплохо было бы иметь простой визуализатор, который бы выдавал простую статистику по хабам и их совместной аудитории, например вот так:
По картинке сразу видно, насколько пересекаются читатели различных хабов и имеет ли смысл заменить какие-либо из них.
Представим, что мы хотим написать в хаб медиа [1] и рассчитываем, а не стоит ли разместить статью в хаб Статистика в IT [2]? Для того чтобы рассчитать целесообразность, необходимо найти пересечение аудитории хабов:
Мы видим, что, фактически, подавляющее количество читателей хабов видит статьи и там и там, а это хороший сигнал о том, что возможно стоить рассмотреть имеющиеся альтернативы.
Зачем еще может понадобиться такой инструмент? (Автор не нашел лучшего аналога для слова tool.) Допустим, что вы представитель какой-либо компании и хотите посмотреть как много читателей определенного хаба подписались на корпоративный блог после написания статьи. Например вы собираетесь написать Проверка фреймворка Qt 5 [3] и хотите посмотреть сколько человек из хаба Qt подписались на корпоративный блог PVS студии, тогда решение построить две диаграммы «до» и «после» следующего вида (тут приводится только «после»):
Если по графику общая тенденция не слишком видна, то наш tool должен также предоставлять текстовую информацию о пересечении, в духе:
57% of pvs-studio(company) intersects with qt_software
Есть на Хабре такие компании, у которых присутствует и корпоративный блог, и собственно хаб, посвященный компании. Например у Яндекса: блог [4] и хаб [5]. Аудитория блога 11к, а хаба 85к, а значит казалось бы зачем размещать в корпоративном блоге, если уже поместили в хаб? Наверняка читатели блога и хаб читают, при соотношении-то 1 к 8 по читателям. Проверим же эту догадку:
Как можно заметить, примерно половина читателей корпоративного блога не читают общий хаб, а значит размещать в оба хаба имеет смысл.
А бывает и такое, что есть общий хаб, например, Вконтакте и технический хаб Вконтакте API и встает вопрос, а имеет ли смысл постить в оба? Не будет ли аудитория второго полностью входить в первую? И это несложно проверить!
Отсюда следует, что догадка оказывается неверной, существуют определенный круг людей читающих технический хаб Вконтакте API и не читающий общий хаб Вконтакте.
И тут, конечно же, внимательный читатель восклицает: а что со всех этих графиков простому хабра-автору? Действительно от одних только графиков приведенных выше пользы мало, но польза есть от инструмента, который их будет строить для автора! Настал момент предоставить первый (и пока единственный) tool в серии Habra Analytics Tools — Venn diagrams for Habrahabr: весь код, документация и примеры доступны через github [6].
Сам инструмент доступен в виде скрипта на python (с пачкой библиотек) и для тех, у кого нет желания ничего настраивать и скачивать замечательные библиотеки matplotlib_venn и urllib3 — доступны бинарники для трех платформ. (Автор приносит свои извинения за размер файлов — сделано всё с помощью pyinstaller, который запихивает все библиотеки в бинарник, но надеется, что для читателей полчаса свободного времени (который бы ушел на настройку и скачивание библиотек) важнее лишних 50МБ.)
Tool доступен в следующих версиях: исходники (python) и исполняемые файлы (все библиотеки включены).
pip install beautifulsoup4 progress urllib3 matplotlib_venn
Также необходимо скачать архив data.7z [12] (~15МБ, unzipped ~ 200МБ) и распаковать его в той же директории, что и скрипт. Далее в зависимости от скаченной версии необходимо вызывать python venn.py
, ./venn
или venn.exe
, будем приводить первый вариант в статье.
Скрипт является консольным, поэтому его важнейшей командой является help, доступный через флаги -h, --help:
python venn.py -h
пример вывода на экран:
Пройдемся же по ключевым флагам и опциям:
python venn.py -d space programming fido
или
python venn.py --draw space programming fido
Если данные не присутствуют ( в датасете собраны все доступные хабы на 26 апреля 2014), то программа автоматически проверит наличие данных на хабре и начнет скачивание, примерно 15-20 минут на хаб. Пример сообщения о скачивании:
Для каждого хаба в программе используется соответствующее имя из ссылки на этот хаб habrahabr.ru/hub/ [13]space — для хаба Космонавтика, space — это имя в программе.
Вывод доступных имен хабов и их полные названия, все операции производятся по коротким латинским именам из списка (они же используются в url на хабре)
python venn.py --hubs
В идеале используется вместе с командой grep:
Создание диаграммы вместе с базовой статистикой
python venn.py --stats -d space programming fido
или вывод только базовой статистики без диаграммы: ключ --onlystats или -o
python venn.py -o space programming fido
Как уже было отмечено ранее, yandex — это корпоративный блог и хаб, чтобы устранить неоднозначность используется ключ:
--company <argument_index>
Пример:
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 хотя кому это нужно? [14] /irony), «причесать код» — автор отдает себе отчет, что написанный код ужасен и должен быть переработан.
Данный tool может служить вспомогательным инструментом для оценки аудитории перед размещением статьи или анализом аудитории корпоративного блога.
Во многом уже сами данные о пользователях хабов представляют интерес для анализа и разработки новых инструментов и программ, но об этом мы поговорим уже в следующих сериях.
monitor $article_id
и она будет записывать и рисовать изменение просмотров (плюсов, etc) во времени, а так же shares and likes в социальных сетях и возможно комментарии читателейhub1
и нам интересно, в каких хабах читатели еще состоят? Каково распределение их вкусов? Какой хаб «ближе всего» к данному, а какой «дальше»?
Дзен-символ языков программирования:
Автор: varagian
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vizualizatsiya-danny-h/59357
Ссылки в тексте:
[1] медиа: http://habrahabr.ru/hub/mass_media/
[2] Статистика в IT: http://habrahabr.ru/hub/statistics/
[3] Проверка фреймворка Qt 5: http://habrahabr.ru/company/pvs-studio/blog/219869/
[4] блог: http://habrahabr.ru/company/yandex/
[5] хаб: http://habrahabr.ru/hub/yandex
[6] github: https://github.com/SergeyParamonov/HabraAnalyticsTools
[7] venn.py: https://github.com/SergeyParamonov/HabraAnalyticsTools/blob/master/venn.py
[8] src/: https://github.com/SergeyParamonov/HabraAnalyticsTools/tree/master/src
[9] venn.exe: https://github.com/SergeyParamonov/HabraAnalyticsTools/raw/master/venn.exe
[10] venn.elf: https://github.com/SergeyParamonov/HabraAnalyticsTools/raw/master/venn.elf
[11] venn.osx: https://github.com/SergeyParamonov/HabraAnalyticsTools/raw/master/venn.osx
[12] data.7z: https://github.com/SergeyParamonov/HabraAnalyticsTools/raw/master/data.7z
[13] habrahabr.ru/hub/: http://habrahabr.ru/hub/
[14] хотя кому это нужно?: http://xkcd.com/619/
[15] Источник: http://habrahabr.ru/post/220465/
Нажмите здесь для печати.