Нормальная ли тема для проекта и её план реализации?
Появилась задача написать проект. Тему, конечно же, нужно тоже выбрать самому. Я далёк от математики, статистики, big data, но у меня появилась такая идея - узнать, какие интересы есть у активных подписчиков группы X во ВКонтакте.
Кто такое активный подписчик? Это тот, кто ставит лайк под постом. (Тут сразу же возникает вопрос, как измерять активность? Отношение кол-ва лайкнутных постов к кол-во постов? Тогда, какое пороговое значение установить. Думаю, эти вопросы решатся после сбора данных). Метод сбора данных
Берём исходную группу, парсим N последних постов, получаем список пользователей, которое поставили лайк под этими постами. Далее у этих пользователей получаем список групп, парсим посты этих групп, получаем список пользователей, лайкнувших эти посты... Так можно продолжать до бесконечности, но ресуры ограничены.
Я уже собрал данные 5000 постов с одной группы, получил лайки (заняло 2.75 ч.). Удивительно, что общее кол-во лайков - 22 * 10^6, а кол-во уникальных пользователей 9 * 10^5.
И из этого я могу составить граф интересов. Т.е. для каждой пары групп можно узнать общее кол-во активных пользователей - это и будет вес ребра. И уже далее можно вручную разметить группу - указать тематику, и исходя из этих двух вещей сделать вывод, какие интересы у активных пользователей подписчиков группы X.
Как вам идея? Нормальное ли получится исследование?
Это те вопросы которые надо задать поставившему задачу. Или как минимум надо знать уровень проекта. какой-то рабочий ресерч, лабораторная работа, курсовая, ВКР. Для последнего явно слабо.
d-sem, если без информации об уровне проекта никуда, то это школьный проект (10-11 кл.)
В целом, мне по силам разобраться (хотя может я переоцениваю себя, и такое исследование провести гораздо сложнее, чем я думаю. скорее всего так и есть, потому что статистику и подобные предметы я не изучал) в чём-то, при условии, что много времени. Я не знаю, нормальное ли исследование и метод исследования? Боюсь, что я где-то мог допустить ошибку, из-за чего сделаю неверные выводы.
На мой взгляд вы делаете много лишней работы. Ваша цель узнать какие интересы у активных подписчиков группы Х. Первая проблема найти активных пописчиков. Вам нужно сделать акцент тут. По каким именно критериям это определять. Затем вы получаете какое-то кол-во активных юзеров. И парсите не другие группы, а именно этих пользователей. ( Принцип Парето вам в помощь) Вам же нужно узнать их интересы, и нет смысла парсить другие группы. Проблема в том как вы будете определять тематику группы. Вручную? Тогда легче просто получить список групп с иследуемых пользователей и составить сортированный список от большего к меньшего и определить тематику самостоятельно( вспомним про принцип парето).
Еще лучше было бы значала выявить уникальных пользователей из всего пула подписчиков. Отсеили ботов.
А затем подсчитывать активность полученого списка. Сколько лайков и комментариев. ( Вот опять парето получиться) и Затем выяснять их интересы. Если вы будете парсить други группы по тем своим активным пользователям, то получить скорее рейтинг активности пользвателей, нежели их интересы
Вечно Крайний, как я определяю активных подписчиков - если пользователь лайкнул больше чем N постов из 100, то он активный.
Отсеивать ботов. Интересная задача, нужно подумать, как отличить бота от человека - по каким-то признакам.
Какие у нас есть признаки: ФИ, дата рождения (я анализирую по факту подростков (я-то понимаю, какие примерно у них интересы, но это надо доказать), а во ВКонтакте можно регистрироваться с 14 лет. Значит возраст в большинстве случаев указан неверный), страна, город, кол-во друзей, связь с другими соц. сетями, кол-во подписчиков, интересы, любая музыка, фильмы, политические взгляды (тоже редко заполняется, но в большинстве случаев достоверно), пол (в большинстве случаев указан верно). И как по этим данным выявлять интересы?
Кстати, почему же я захотел парсить другие группы? Я исхожу из того, что активный пользователь будет лайкать то, что ему нравится. Соотвественно, получится узнать интересные группы. Конечно, большинство ведёт себя пассивно (достаточно посмотреть на кол-во лайков и просмотров), но их тоже можно анализировать. Опять же как тогда анализировать профиль, если тут такое скудное кол-во информации?
если пользователь лайкнул больше чем N постов из 100, то он активный.
Ну-ну... Зашёл юзер, лайкнул 80% постов, не сильно разбираясь, про что они, и свалил в туман ещё на неделю - активный, чё...
Надо вести мониторинг в динамике - как минимум ежесуточно (скажем, ежедневно в 12-00), а то и чаще, в течение достаточно продолжительного периода, скажем, месяц. Вот по таким данным уже можно будет говорить об активности.
kerosin228, отлично. Давай по порядку.
1.) Мы отсеяли всех пользователей которые, сделали меньше N лайков на 100 постов.
2.) Сортируешь их по убыванию( опраемся на количества лайков)
3) Берем из их профилей группы в которые входят эти пользователи( миниму 20%, начиная с самого активного)
4) Получешь активнных пользователей и список групп в которых они состоят.
5) Делаешь сводную таблицу из групп и пользователей. Получаешь список групп где на первом месте будет группа Y с наибольшоим количеством ТВОИХ активных подписчиков.
6) Анализируешь тематики минимум первых 20% этого списка групп и получаешь тематики
P.S. Погрешность будет в любом случае. Есть вероятность нарваться на закрытый профиль. Так что придется брать только открыте профили. Но как правило самые активные с открытым профилем. Работа объемная, но есть к чему привязываться, это id пользователей и id группы + количество лайков. Если не ошибаюсь это третья нормальная форма.
Можно вообще заморочиться и распарсить все группы всех ТВОИХ активыных пользователей и выяснить в каких группах помимо твоей эти пользователи прояляют наивысшию активнсть, затем скрешивать эти данные пользователь->активные группы. И анализировать на тематики уже эти данные. Но думаю они не будут сильно отличаться от того, если ты пойдешь первым путем.
P.S.занимаюсь примерно тем же сейчас, только мне парсить не надо, но у меня данные не структуризированные(
Вечно Крайний, звучит правдоподобно. А как, например, анализировать неактивных участников? Ведь даже сложно понять, они подписаны, потому что им интересно, или им неинтересно, но им лень отписаться. Хотя, это, наверное, крайний случай, таких мало. Тогда можно по такой же логике взять пользователей, их группы, взять группы, в которых больше всего общих участников, разметить их, получить главные интересы. Но что если пользователей много - 2 миллиона? (Каких 400'000 подписчиков мне взять, чтобы эта выборка была репрезентативна? Выбирать случайным образом? Можно, конечно, всех проверить, вот только это будет очень долго. Я получил список групп активных участников и заметил, что кол-во групп, где число участников >10'000 очень мало. С каждым проверенным участником всё меньше активных уникальных групп можно получить. О чём, кстати, говорит закон Парето. ) Можно сразу же посмотреть на последнюю активность. Если пользователь заходил давно, то его не надо проверять.
P.S.занимаюсь примерно тем же сейчас, только мне парсить не надо, но у меня данные не структуризированные(