def compute_social_agony(graph_file,agony_path = "agony/agony "):
	
	dir_name,tail = dir_tail_name(graph_file)
	output = os.path.join(dir_name,tail.split(".")[0] + "_socialagony.txt")
	
	compute_social_agony_script(graph_file,output,agony_path = agony_path)
	from file_io import read_dict_from_file
	agony_score = read_dict_from_file(output)
	return agony_score
Ejemplo n.º 2
0
def computing_hierarchy(graph_file, players_score_func_name, nodetype=int):
    import os.path
    if players_score_func_name == "socialagony":
        from helper_funs import dir_tail_name
        dir_name, tail = dir_tail_name(graph_file)
        agony_file = os.path.join(dir_name,
                                  tail.split(".")[0] + "_socialagony.txt")
        #agony_file = graph_file[:len(graph_file)-6] + "_socialagony.txt"
        #from compute_social_agony import compute_social_agony
        #players = compute_social_agony(graph_file,agony_path = "agony/agony ")
        if False:
            #if os.path.isfile(agony_file):
            print("load pre-computed socialagony from: %s" % agony_file)
            players = read_dict_from_file(agony_file)
        else:
            print("start computing socialagony...")
            from compute_social_agony import compute_social_agony
            players = compute_social_agony(graph_file,
                                           agony_path="agony/agony ")
            print("write socialagony to file: %s" % agony_file)
        return players
    g = nx.read_edgelist(graph_file,
                         create_using=nx.DiGraph(),
                         nodetype=nodetype)
    if players_score_func_name == "pagerank":
        #print("computing pagerank...")
        players = nx.pagerank(g, alpha=0.85)
        return players
    elif players_score_func_name == "trueskill":
        output_file = graph_file[:len(graph_file) - 6] + "_trueskill.txt"
        output_file_2 = graph_file[:len(graph_file) - 6] + "_trueskill.pkl"
        #from true_skill import graphbased_trueskill
        #players = graphbased_trueskill(g)
        #from file_io import write_dict_to_file
        #write_dict_to_file(players,output_file)
        '''
		if os.path.isfile(output_file):
			print("load pre-computed trueskill from: %s" % output_file)
			players = read_dict_from_file(output_file,key_type = int, value_type = float)
		elif os.path.isfile(output_file_2):
			print("load pre-computed trueskill from: %s" % output_file_2)
			players = read_from_pickle(output_file_2)			
		'''
        if True:
            print("start computing trueskill...")
            from true_skill import graphbased_trueskill
            players = graphbased_trueskill(g)
            from file_io import write_dict_to_file
            print("write trueskill to file: %s" % output_file)
            write_dict_to_file(players, output_file)

        return players
def compute_social_agony(graph_file,agony_path = "agony/agony "):
	output = graph_file[:len(graph_file)-6] + "_socialagony.txt"
	compute_social_agony_script(graph_file,output,agony_path = agony_path)
	from file_io import read_dict_from_file
	agony_score = read_dict_from_file(output)
	return agony_score