Редактирование: Анализ дружеских связей VK

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
[[File:znaGfHygTsk.jpg|600px|thumb|right|Так выглядит пример социального графа дружеских связей.Каждый квадратик - человек.Каждая линия - дружба.]]
+
[[File:28834324edcfde1f686c740d77664014.png|800px|thumb|right|<big><big>Так выглядит пример графа дружеских связей.Каждый квадратик - человек. Каждая линия - дружба.</big></big>]]
  
== <big>Введение</big> ==  
+
== <big>Описание</big> ==  
<big>Все мы знакомы с  теорией о шести рукопожатиях. Недавний анализ  сети Фейсбука вывел число 4,7. Мы решили проверить эти данные, только в той соцсети, в которой «живём» (а именно, ВКонтакте).
 
Наша задача – анализ дружеских сетей Вконтакте,разработана на языке программирования Python. Она позволяет построить социальный граф своей странички в сети Вконтакте. Социальный граф — это информация о некоторой группе людей и об отношениях между ними (в данном случае о том, кто с кем дружит). Но часто под этим словосочетанием также подразумевается и схематичное изображение этой информации — в виде точек и линий между ними. Если определенным образом переставить точки, то можно видеть, как выделяются подгруппы людей, внутри которых почти все дружат между собой — это называется кластеризацией.
 
  
Чтобы построить социальный граф, нам надо:
 
  
1. Получить список всех друзей текущего пользователя и представить их в
 
виде точек на плоскости.
 
  
2. Для каждого друга из п.1 получить его друзей, общих с текущим пользователем.
 
  
3. Точку каждого друга соединить линиями с точками других друзей, которые есть у него в друзьях.</big>
+
Задача представляет собой построения графа дружеских связей в социальной сети Вконтакте с помощью языка программирования Python.
 
 
 
 
<big>Для более точного понимания  можно рассмотреть пример:
 
у Вас есть все из перечисленных друзей (A, B, C, D, E, F H, K). В свою очередь у друга 'A' есть Ваш друг 'E' и 'F'. У друга 'B' есть Ваши друзья 'C', 'D', 'H', 'K'. Ваш друг 'C' дружит с 'D' и 'K'.</big>
 
[[File:2ZcCvKZC4pM.jpg|500px|thumb|left|<big>Иллюстрация к примеру</big>]]
 
  
 
== <big>Цель</big> ==
 
== <big>Цель</big> ==
<big>Главной целью нашей работы является анализ дружеских связей Вконтакте с помощью построения  социального графа.</big>
 
  
 
== <big>Задачи </big> ==
 
== <big>Задачи </big> ==
 
 
<big>
+
# Получение данных пользователь с помощью API ВКонтакте
1.Получение данных пользователя.
+
# Обработка данных
 
+
# Визуализация(построения графа) при помощи ??
2.Обработка полученных данных.
+
  Ход выполнения :
 
 
3.Визуализация.
 
 
</big>
 
 
 
== <big>Описание выполнения задач</big> ==
 
 
 
<big>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.
 
 
 
Более подробное описание выполнения работы Вы можете найти в текстовом документе  нашей курсовой работы.(см. раздел "Скачать проект")</big>
 
 
 
== <big>Результаты работы программы</big> ==
 
[[File:bZipYtxHV4s.jpg]]
 
 
 
<big>''Полученный социальный граф дружеских связей''.</big>
 
 
 
 
 
 
 
== <big>Заключение</big> ==
 
<big>Таким образом, в ходе работы над проектом, был построен социальный граф дружеских связей в социальной сети Вконтакте. Мы смогли проанализировать информацию о некоторой группе людей и наглядно увидеть связь между ними. Из результатов программы можно увидеть, как выделяются подгруппы людей, внутри которых почти все дружат между собой —та самая кластеризация, о которой говорилось во введении.
 
</big>
 
 
 
== <big>Перспективы развития проекта</big> ==
 
*Визуализация проекта с помощью 3D графики.
 
*Использование более полной информации о пользователях(например: фотографии профилей, имена.
 
*Работа в realtime.
 
*Использование RAD-buildera для вывода этого проекта в конченый продукт.
 
*Построение собственной рекомендательной системы на основе связей/общих интересов и тд.
 
 
 
== <big>Cписок литературы</big> ==
 
 
 
<big>
 
 
 
* https://ru.wikipedia.org/wiki/Анализ_социальных_сетей
 
 
* https://ru.wikipedia.org/wiki/Социальный_граф
 
 
* Документация API VK : https://vk.com/dev/manuals
 
 
 
* Документация NetworkX : https://networkx.readthedocs.io/en/stable/
 
 
 
* Документация Matplotlib: https://matplotlib.org</big>
 
 
 
== <big>Скачать проект</big> ==
 
 
 
* Текстовый документ  описания курсовой работы:
 
 
 
[[File:Курсовая_Работа_Граф_Дружеских_Связей.docx]]
 
 
 
* Код программы на языке Python :
 
 
[[:File:Код_Программы.docx]]
 
 
 
== <big>Участники проекта</big> ==
 
 
 
* [http://tm.spbstu.ru/Лосева_Татьяна Лосева Татьяна]
 
* [http://tm.spbstu.ru/Киселёв_Лев Киселёв Лев]
 
 
 
== <big>См. также</big> ==
 
[[Кафедра "Теоретическая механика"]]
 
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)