Граф Вконтакте что это

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

vk_friends_graph_visualisation / README.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
76 lines (55 sloc) 6.56 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

Граф друзей ВКонтакте

Лабораторная работа 1

Выбранный источник данных и описание датасета

В качестве источника данных нами была выбрана социальная сеть ВКонтакте. Граф составлен следующим образом:

  • Вершины графа представляют из себя пользователей социальной сети.
  • Две вершины графа соединены ребром, если и только если 2 пользователя, соответствующих этим вершинам, «дружат» во ВКонтакте.
  • Каждая вершина имеет атрибут в виде ID пользователя

Для сбора данных использовалось VK API (https://vk.com/dev/methods).

Что в моей личке ВК?

Описание результатов сбора данных

После сбора мы представили данные в виде списка связности. Далее отправили их в графовую СУБД Neo4j с помощью Py2neo — библиотеки для работы с ней на языке Python.

alt text

Визуализировать граф в Neo4j можно следующим образом:

Лабораторная работа 2

Для визуализации графов нами был выбран алгоритм Камады–Каваи. Алгоритм Камады–Каваи — это силовой алгоритм для визуализации графов. В его основе лежит идея использования лишь сил пружин между всеми парами вершин с идеальными длинами пружин, равными расстоянию по графу. Целью алгоритма является минимизация энергии в системе пружин.

Мы использовали библиотеку NetworkX для Python. В этой библиотеке существует функция, реализующая выбранный нами алгоритм:

nx.draw_kamada_kawai( G, with_labels=False, node_size=550, alpha=0.7, node_color=colors, edge_color=»gray» )

Здесь на вход функции подаются непосредственно граф G и параметры стилизации визуализации графа, такие как:

  • Наличие подписи with_labels = False
  • Размер вершины node_size=550
  • Прозрачность ребер alpha=0.7
  • Цвет вершин node_color=colors, где colors определено заранее
  • Цвет ребер edge_color=»gray»

На вход функции мы подали 3 различных графа из датасета, который был создан в лабораторной 1:

  1. Исходный граф друзей.
  2. Граф, состоящий из друзей женского пола.
  3. Граф, состоящий из друзей мужского пола.

Пример запуска алгоритма на трех графах

Еще по теме:  Как оплатить рекламу Вконтакте через Сбербанк онлайн

Как Вконтакте Захватывает Интернет Обновления 2023 года!

  1. Исходный граф друзей alt text
  2. Граф, состоящий из друзей женского пола alt text
  3. Граф, состоящий из друзей мужского пола alt text

Ещё один алгоритм

Помимо реализации алгоритма Камады–Каваи мы также воспользовались реализацией силового алгоритма, функцией draw с Matplotlib, и получили визуализацию следующего вида:

  1. Исходный граф друзей alt text
  2. Граф, состоящий из друзей женского пола alt text
  3. Граф, состоящий из друзей мужского пола alt text

alt text

Мы также применили алгоритм кластеризации SpectralClustering из библиотеки sklearn.cluster. Можно заметить, что четко обозначились несколько кластеров. Кластеры представляют из себя разные сообщества людей.

Собственный алгоритм отрисовки

В качестве алгоритма для реализации мы решили выбрать следующую модификацию обобщенной силовой модели пружин kamada_kawai:

  1. Расставляем вершины на плоскости случайным образом
  2. Совершаем следующие итерации:
    • Для каждой вершины $V$ проходимся по всем ее соседям $U$ и вычисляем вектор смещения между ними $Diff$
    • Если длина этого вектора $Diff$ больше какого-то константного значения, это значит, что в конце итерации вершины должны быть ближе к друг другу, и нужно сместить текущую вершину $V$ в сторону $U$
    • Если длина этого вектора $Diff$ меньше этого же значения, это значит, что в конце итерации вершины нужно отдалить друг от друга
    • Пройдясь так по всем вершинам-соседям, мы высчитываем вектор сдвига $Move$ , нормализуем его и выполняем сдвиг

    alt text

    Полученная в результате этого алгоритма отрисовка графа выглядит вполне полезной:

    Можно видеть, что кластера стали более связными, отчетливо прослеживаются три объединения, соответствующие в графе друзей однокурсникам, школьным друзьям и коллегам.

    Источник: github.com

    Как пользоваться социальным графом в ВКонтакте?

    Социальная сеть Вконтакте подарила своим пользователям ещё одну функцию, а вернее мини-сервис «Социальный граф».

    С «Социальным графом» у пользователей есть возможность построить свою цепочку друзей, хоть когда либо встречавшихся. В этом графе хранятся все записи, фото, видео. Также можно посмотреть сколько лет странице.

    Достаточно зайти в приложение, внизу будет надпись «Социальный граф». Щёлкаем туда и пользуемся всеми возможностями.

    система выбрала этот ответ лучшим
    комментировать
    в избранное ссылка отблагодарить
    Елена Д [360K]
    6 лет назад

    В честь своего десятилетнего юбилея социальная сеть «ВКонтакте» подготовила своим пользователям необычный подарок — теперь вся статистика каждого пользователя выводится на отдельную страницу с помощью программы «Вспомнить всё» — тут можно будет увидеть самые первые опубликованные фото, добавленные аудиозаписи, первых друзей, граффити, также можно будет узнать точный срок, в течение которого существует страница, количество отправленных пользователем сообщений и отметок «Мне нравится». В самом конце страницы расположен т.н. «Социальный граф», посредством которого можно делиться «воспоминаниями» со своими друзьями.

    Еще по теме:  Как в ВК сделать фон в сообщениях

    Источник: www.bolshoyvopros.ru

    Находим общих друзей людей с использованием VK API

    Мир ВКонтакте

    Попалась мне тут когда-то интересная задача — быстро и максимально просто (с минимумом привлекаемых библиотек) нарисовать граф пересечения пользователей разных групп Вконтакте. И я ее даже сделал. Затем подумал — а вдруг кому-то еще нужно будет сделать что-то подобное?

    Поэтому здесь я расскажу и покажу, как же всё-таки делать такие вещи:

    1. Подключаться к веб-сайту вконтакте с помощью Python 2.7 (всегда можно переписать под 3.x, если что)

    2. Создавать графы с помощью библиотеки NetworkX (здесь рассматриваем графы пересечений аудитории групп вконтакте)

    3. Визуализировать эти графы (тут нам немного понадобится библиотека matplotlib)

    Задание: нарисовать граф пересечений пользователей разных групп Вконтакте

    Базовые инструменты: Python 2.7, NetworkX, matplotlib, numpy

    Стандартный поиск в ВК

    Если вы зарегистрированы во ВКонтакте и хотите отыскать другого юзера соцсети, то трудностей с поиском у вас возникнуть не должно. Особенно если вы знаете Ф. И. О. искомого человека и город его проживания.

    Впишите имя и фамилию юзера, которого нужно найти, в строку поиска и нажмите “Показать все результаты” или клавишу Enter. Вы попадете на страницу с общими результатами поиска. В верхней части будут представлены 4 аккаунта, которые, по мнению ВКонтакте, больше всего подходят под ваш запрос.

    Если нужного человека там нет, то кликните на надпись “Показать всех” или перейдите в раздел “Люди” в правом меню. В этом разделе можно будет увидеть всех пользователей, которые подходят под ваш запрос.

    Человека, который принимает активное участие в различных мероприятиях, можно попробовать поискать в разделе “Новости”. Есть вероятность, что его отметят в записях мероприятия как участника.

    Учитывая тот факт, что количество аккаунтов во ВКонтакте уже перевалило за 523 миллиона, в процессе розыска вам, скорее всего, встретятся много однофамильцев и тезок человека, которого вы хотите отыскать. Особенно если у него распространенные имя и фамилия. К примеру, если ввести в поиск “Иван Сидоров”, в результате будет почти 14 000 людей. Чтобы среди них найти нужного, необходимо применить фильтры.

    В ВК довольно много инструментов фильтрации, поэтому уменьшить количество неподходящих профилей в поисковой выдаче не составит труда. Давайте кратко рассмотрим каждый параметр, который можно настроить.

    Сортировка. По умолчанию стоит в положении “По популярности”, и все профили отображаются в порядке уменьшения популярности: вверху аккаунты с наибольшим количеством друзей и подписчиков, внизу – с наименьшим. При переключении в режим “По дате регистрации”, сверху будут показываться совсем недавно зарегистрированные в ВК юзеры.

    Еще по теме:  Что значит пх в ВК

    Регион. С помощью этого параметра можно отыскать юзера по стране и городу.

    Школа/Университет. Фильтры станут доступны только после того, как вы укажете город проживания пользователя. С их помощью можно легко найти как одноклассников и одногруппников, с которыми вы потеряли связь, так и незнакомых учащихся и студентов учебного заведения. В процессе заполнения станут доступны более детальные фильтры, такие как “Год выпуска”, “Факультет”, “Кафедра” и другие.

    Возраст. Этот фильтр очень сильно облегчит вам процесс розыска. Если вы не знаете точный возраст, то можете указать примерный диапазон. Даже если он будет большим, например 10 – 15 лет, то все равно отсеет многие неподходящие профили.

    Пол. Думаю, тут все понятно. Если есть подозрения, что юзер мог в шутку указать неверный пол в личной информации, то лучше оставьте фильтр в положении “Любой”.

    Семейное положение. Есть 8 вариантов – просто выберите подходящий.

    С фотографией. Поставьте галочку напротив этого пункта, чтобы исключить всех юзеров, у которых нет аватарки.

    Сейчас на сайте. Этот пункт оставит в выдаче только людей, которые на момент поиска находятся онлайн.

    Жизненная позиция. В этом фильтре содержатся подпункты:

    • мировоззрение,
    • главное в жизни,
    • главное в людях,
    • отношение к курению,
    • отношение к алкоголю.

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

    Место работы и должность. Обязательно заполните эти графы, если хотите найти коллегу или сотрудника определенной фирмы.

    Военная служба. Укажите страну, воинскую часть и год начала службы – так вы с большой вероятностью найдете сослуживцев или военных из интересующей вас части.

    Дополнительно. Под этим фильтром скрыты три параметра: год, месяц и день рождения. Если вы владеете этой информацией, то обязательно заполните предложенные поля.

    Учтите, если вы укажите какой-либо фильтр, который не заполнен в профиле пользователя, то он не попадет в выдачу.

    Визуализируем

    Визуализация проводится с помощью методов NetworkX на базе matplotlib. Подробнее о том, как визуализировать граф, можно прочитать здесь. А вот пример того, как визуализируется именно тот граф, который мы создали выше. Параметры методов говорят сами за себя, так что дополнительных объяснений, полагаю, не требуется

    Источник: ve-kon.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...