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

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Описание выполнения задач)
(Заключение)
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
[[File:Social_graph.gif|500px|thumb|right|Так выглядит пример  социального графа дружеских связей.]]
+
[[File:znaGfHygTsk.jpg|600px|thumb|right|Так выглядит пример  социального графа дружеских связей.Каждый квадратик - человек.Каждая линия - дружба.]]
  
 
== <big>Введение</big> ==  
 
== <big>Введение</big> ==  
Строка 38: Строка 38:
 
В своём проекте мы использовали библиотеку vk_api.С помощью методов этой библиотеки мы получаем списки друзей, которые далее нужно будет сортировать.
 
В своём проекте мы использовали библиотеку vk_api.С помощью методов этой библиотеки мы получаем списки друзей, которые далее нужно будет сортировать.
  
2.После получения списков друзей с помощью методов API VK,нам нужно будет их отсортировать.Суть в том, что мы просто составляем таблицу по поисковым запросам, точнее даже не таблицу, а словарь. У нас есть первоначальная таблица id друзей.Затем, c помощью цикла у каждого id мы смотрим количество общих друзей с другими id.  
+
 
 +
2.После получения списков друзей с помощью методов API VK,нам нужно будет их отсортировать.Делаем это следующим образом :
 +
 
 +
*Поисковым запросом находим список друзей исходного id.
 +
 
 +
*Далее заполняем словарь общих друзей.
 +
 
 +
*Получаем ответ.
 +
 
 +
Всю полученную информацию мы сохраняем в словаре.
 +
 
 +
Таким образом,суть в том, что мы просто составляем словарь по поисковым запросам.У нас есть первоначальная таблица id друзей.Затем, c помощью цикла у каждого id мы смотрим количество общих друзей с исходным id.  
  
 
3.Для визуализации графов мы использовали библиотеку NetworkX.
 
3.Для визуализации графов мы использовали библиотеку NetworkX.
Рассматривается библиотека NetworkX предназначенная для создания, манипуляции и изучения структуры, динамики и функционирования сложных сетевых структур.Так же использовалась библиотека  Matplotlib.
+
Рассматриваемая  библиотека NetworkX предназначенная для создания, манипуляции и изучения структуры, динамики и функционирования сложных сетевых структур.Так же использовалась библиотека  Matplotlib.
  
Более подробное описание выполнения работы Вы можете найти в текстовом документе  нашей курсовой работы.</big>
+
Более подробное описание выполнения работы Вы можете найти в текстовом документе  нашей курсовой работы.(см. раздел "Скачать проект")</big>
  
 
== <big>Результаты работы программы</big> ==
 
== <big>Результаты работы программы</big> ==
Строка 55: Строка 66:
 
<big>Таким образом, в ходе работы над проектом, был построен социальный граф дружеских связей в социальной сети Вконтакте. Мы смогли проанализировать информацию о некоторой группе людей и наглядно увидеть связь между ними. Из результатов программы можно увидеть, как выделяются подгруппы людей, внутри которых почти все дружат между собой —та самая кластеризация, о которой говорилось во введении.
 
<big>Таким образом, в ходе работы над проектом, был построен социальный граф дружеских связей в социальной сети Вконтакте. Мы смогли проанализировать информацию о некоторой группе людей и наглядно увидеть связь между ними. Из результатов программы можно увидеть, как выделяются подгруппы людей, внутри которых почти все дружат между собой —та самая кластеризация, о которой говорилось во введении.
 
</big>
 
</big>
 
+
 
 +
== <big>Перспективы развития проекта</big> ==
 +
*Визуализация проекта с помощью  3D графики.
 +
*Использование более полной информации о пользователях(например: фотографии профилей, имена.
 +
*Работа в realtime.
 +
*Использование RAD-buildera для вывода этого проекта в конченый продукт.
 +
*Построение собственной рекомендательной системы на основе связей/общих интересов и тд.
  
 
== <big>Cписок литературы</big> ==
 
== <big>Cписок литературы</big> ==
Строка 71: Строка 88:
 
* Документация Matplotlib: https://matplotlib.org</big>
 
* Документация Matplotlib: https://matplotlib.org</big>
  
== <big>Скачать проект</big> ==  
+
== <big>Скачать проект</big> ==
 
 
  
 +
* Текстовый документ  описания курсовой работы:
  
 +
[[File:Курсовая_Работа_Граф_Дружеских_Связей.docx]]
  
 +
* Код программы на языке Python :
 +
 +
[[:File:Код_Программы.docx]]
  
 
== <big>Участники проекта</big> ==  
 
== <big>Участники проекта</big> ==  

Текущая версия на 11:04, 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.
  • Далее заполняем словарь общих друзей.
  • Получаем ответ.

Всю полученную информацию мы сохраняем в словаре.

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

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

Более подробное описание выполнения работы Вы можете найти в текстовом документе нашей курсовой работы.(см. раздел "Скачать проект")

Результаты работы программы[править]

BZipYtxHV4s.jpg

Полученный социальный граф дружеских связей.


Заключение[править]

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

Перспективы развития проекта[править]

  • Визуализация проекта с помощью 3D графики.
  • Использование более полной информации о пользователях(например: фотографии профилей, имена.
  • Работа в realtime.
  • Использование RAD-buildera для вывода этого проекта в конченый продукт.
  • Построение собственной рекомендательной системы на основе связей/общих интересов и тд.

Cписок литературы[править]

Скачать проект[править]

  • Текстовый документ описания курсовой работы:

Файл:Курсовая Работа Граф Дружеских Связей.docx

  • Код программы на языке Python :

File:Код_Программы.docx

Участники проекта[править]

См. также[править]

Кафедра "Теоретическая механика"