Python 对Facebook用户Friendship的聚类分析
2014-08-14 07:26
363 查看
CODE:
RESULT:
#!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-13 @author: guaguastd @name: friendship_graph_construct.py ''' import networkx as nx import requests import json ACCESS_TOKEN = ‘' # impot login from login import facebook_login # access to facebook facebook_api = facebook_login() friends = [ (friend['id'], friend['name'],) for friend in facebook_api.get_connections('me', 'friends')['data'] ] url = 'https://graph.facebook.com/me/mutualfriends/%s?access_token=%s' mutual_friends = {} # spawn a separate request for each iteration for friend_id, friend_name in friends: r = requests.get(url % (friend_id, ACCESS_TOKEN,), verify=False ) response_data = json.loads(r.content)['data'] mutual_friends[friend_name] = [ data['name'] for data in response_data ] nxg = nx.Graph() [ nxg.add_edge('me', mf) for mf in mutual_friends ] [ nxg.add_edge(f1, f2) for f1 in mutual_friends for f2 in mutual_friends[f1]] cliques = [c for c in nx.find_cliques(nxg)] num_cliques = len(cliques) clique_sizes = [len(c) for c in cliques] max_clique_size = max(clique_sizes) avg_clique_size = sum(clique_sizes) / num_cliques max_cliques = [c for c in cliques if len(c) == max_clique_size] num_max_cliques = len(max_cliques) max_clique_sets = [set(c) for c in max_cliques] friends_in_all_max_cliques = list(reduce(lambda x, y: x.intersection(y), max_clique_sets)) print 'Num cliques:', num_cliques print 'Avg clique size:',avg_clique_size print 'Max clique size:', max_clique_size print 'Num max cliques:', num_max_cliques print print 'Frieds in all max cliques:' print json.dumps(friends_in_all_max_cliques, indent=1) print print 'Max cliques:' print json.dumps(max_cliques, indent=1)
RESULT:
Num cliques: 11 Avg clique size: 2 Max clique size: 3 Num max cliques: 6 Frieds in all max cliques: [ "me" ] Max cliques: [ [ "me", "Soofi Cat", "Nanu Soria" ], [ "me", "Jorge Rodriguez", "Ayel\u00e9n Basualdo" ], [ "me", "Jorge Rodriguez", "\u5434\u57ce" ], [ "me", "Jorge Rodriguez", "Wanda Bianchi" ], [ "me", "Jorge Rodriguez", "Jeniifer Mendez" ], [ "me", "Jorge Rodriguez", "Karen Csr" ] ]
相关文章推荐
- Python 聚类分析LinkedIn用户人脉网络
- python实现人人网用户数据爬取及简单分析
- Python 分析Twitter用户喜爱的推文
- 【Python-Opencv】KNN聚类分析
- Python聚类算法之凝聚层次聚类实例分析
- [python和大数据-1]利用爬虫登录知乎进行BFS搜索抓取用户信息本地mysql分析【PART1】
- 聚类分析在用户分类中的应用
- 《推荐系统》基于用户和Item的协同过滤算法的分析与实现(Python)
- Python 获取Facebook用户Friends的爱好类别中的Top10
- Python 获取Facebook用户的Friends的爱好中的Top10
- python实现人人网用户数据爬取及简单分析
- Python 获取Facebook特定用户的粉丝数
- Python 统计Facebook用户爱好的个数
- Python 获取Facebook用户Friends的爱好类别中的Top10
- Python 分析Twitter用户喜爱的推文
- Python 可视化Facebook用户与其有共同爱好的Friends (数量)
- Python 爬行Twitter用户的Friendship图
- Python 获取Facebook用户的Friends的爱好中的Top10
- Python 获取Facebook用户与其有共同爱好的Friends
- Python 获得Facebook用户有一个共同的兴趣Friends