Анализ дружеских связей VK — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Задачи)
(Описание выполнения работы)
Строка 33: Строка 33:
 
</big>
 
</big>
  
== Описание выполнения работы ==
+
== <big>Описание выполнения задач</big> ==
 +
 
 +
<big>1.Для получения данных пользователь мы использовали API Вконтакте. API ВКонтакте — это интерфейс, который позволяет получать информацию из базы данных vk.com с помощью http-запросов к специальному серверу. Для работы с VK API в Python есть две популярные библиотеки: vk и vk_api.
 +
В своём проекте мы использовали библиотеку vk_api.С помощью методов этой библиотеке мы получаем списки друзей, которые далее нужно будет сортировать.
 +
 
 +
2.После получения списков друзей с помощью методов API VK,нам нужно будет их отсортировать.Суть в том, что мы просто составляем таблицу по поисковым запросам, точнее даже не таблицу, а словарь. У нас есть первоначальная таблица id друзей.Затем, c помощью цикла у каждого id мы смотрим количество общих друзей с другими id.
 +
 
 +
3.Для визуализации графов мы использовали библиотеку NetworkX.
 +
Рассматривается библиотека NetworkX предназначенная для создания, манипуляции и изучения структуры, динамики и функционирования сложных сетевых структур.Так же использовалась библиотека  Matplotlib.
 +
 
 +
Более подробное описание выполнения работы Вы можете найти в текстовом документа  нашей курсовой работы.</big>

Версия 02:37, 2 июня 2017

Так выглядит пример графа дружеских связей.Каждый квадратик - человек. Каждая линия - дружба.

Введение

Все мы знакомы с теорией о шести рукопожатиях. Недавний анализ сети Фейсбука вывел число 4,7. Мы решили проверить эти данные, только в той соцсети, в которой «живём» (а именно, ВКонтакте). Наша задача – анализ дружеских сетей Вконтакте,разработана на языке программирования Python. Она позволяет построить социальный граф своей странички в сети Вконтакте. Социальный граф — это информация о некоторой группе людей и об отношениях между ними (в данном случае о том, кто с кем дружит). Но часто под этим словосочетанием также подразумевается и схематичное изображение этой информации — в виде точек и линий между ними. Если определенным образом переставить точки, то можно видеть, как выделяются подгруппы людей, внутри которых почти все дружат между собой — это называется кластеризацией.

Чтобы построить социальный граф, нам надо:

1. Получить список всех друзей текущего пользователя и представить их в виде точек на плоскости.

2. Для каждого друга из п.1 получить его друзей, общих с текущим пользователем.

3. Точку каждого друга соединить линиями с точками других друзей, которые есть у него в друзьях.


Для более точного понимания можно рассмотреть пример: у Вас есть все из перечисленных друзей (A, B, C, D, E, F H, K). В свою очередь у друга 'A' есть Ваш друг 'E' и 'F'. У друга 'B' есть Ваши друзья 'C', 'D', 'H', 'K'. Ваш друг 'C' дружит с 'D' и 'K'.

Иллюстрация к примеру

Цель

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

Задачи

1.Получение данных пользователя.

2.Обработка полученных данных.

3.Визуализация(построения графа).

Описание выполнения задач

1.Для получения данных пользователь мы использовали API Вконтакте. API ВКонтакте — это интерфейс, который позволяет получать информацию из базы данных vk.com с помощью http-запросов к специальному серверу. Для работы с VK API в Python есть две популярные библиотеки: vk и vk_api. В своём проекте мы использовали библиотеку vk_api.С помощью методов этой библиотеке мы получаем списки друзей, которые далее нужно будет сортировать.

2.После получения списков друзей с помощью методов API VK,нам нужно будет их отсортировать.Суть в том, что мы просто составляем таблицу по поисковым запросам, точнее даже не таблицу, а словарь. У нас есть первоначальная таблица id друзей.Затем, c помощью цикла у каждого id мы смотрим количество общих друзей с другими id.

3.Для визуализации графов мы использовали библиотеку NetworkX. Рассматривается библиотека NetworkX предназначенная для создания, манипуляции и изучения структуры, динамики и функционирования сложных сетевых структур.Так же использовалась библиотека Matplotlib.

Более подробное описание выполнения работы Вы можете найти в текстовом документа нашей курсовой работы.