def get_igraph_g(self): from smarttypes.model.twitter_user import TwitterUser from smarttypes.graphreduce.reduce_graph import get_igraph_graph network = {} for score, user_id in self.get_members(): user = TwitterUser.get_by_id(user_id, self.postgres_handle) network[user.id] = set(user.following_ids) g = get_igraph_graph(network) pagerank = g.pagerank(damping=0.65) both = zip(pagerank, g.vs['name']) for x, y in sorted(both): print x print TwitterUser.get_by_id(y, self.postgres_handle).screen_name
def get_igraph_g(self): from smarttypes.model.twitter_user import TwitterUser from smarttypes.graphreduce.reduce_graph import get_igraph_graph network = {} for score, user_id in self.get_members(): user = TwitterUser.get_by_id(user_id, self.postgres_handle) network[user.id] = set(user.following_ids) g = get_igraph_graph(network) pagerank = g.pagerank(damping=0.65) both = zip(pagerank, g.vs["name"]) for x, y in sorted(both): print x print TwitterUser.get_by_id(y, self.postgres_handle).screen_name
if not len(sys.argv) > 1: raise Exception('Need a twitter handle.') else: screen_name = sys.argv[1] if smarttypes.config.IS_PROD: start_here = datetime.now() else: start_here = datetime(2012, 8, 1) root_user = TwitterUser.by_screen_name(screen_name, postgres_handle) distance = 45000 / len(root_user.following[:5000]) #distance = 0 network = TwitterUser.get_rooted_network(root_user, postgres_handle, start_here=start_here, distance=distance, go_back_this_many_weeks=15) print "writing %s nodes to disk" % len(network) g = reduce_graph.get_igraph_graph(network) lang_names = [] loc_names = [] for node_id in g.vs['name']: user = TwitterUser.get_by_id(node_id, postgres_handle) lang_names.append(user.lang.encode('ascii', 'ignore')) loc_names.append(user.location_name.encode('ascii', 'ignore')) g.vs['lang_name'] = lang_names g.vs['loc_name'] = loc_names reduce_graph.write_to_graphml_file(root_user, g, network) # print "mk_user_csv took %s to execute" % (datetime.now() - start_time)