Esempio n. 1
0
def get_leaders_and_outermosts():
    guys = Reader.read_lines("datasets/enron/enron_guys.txt")
    guys = {int(nid) : email for nid, email in guys}

    global_leaders, global_outermosts = defaultdict(list), defaultdict(list)
    for month in xrange(1, 13):
        n = Network('datasets/enron/timeslots/{:02d}-filtered2.edges'.format(month),
                    is_directed=False,
                    use_communities=True)
        communities = set(flatten_list(n.communities.values()))
        month_leaders, month_outermosts = set(), set()
        for c in communities:
            n.filter_community([c])
            leaders, outermosts = RoleMining(n).find_roles()
            [month_leaders.add(leader) for leader in leaders]
            [month_outermosts.add(outer) for outer in outermosts]
            n.unfilter_graph()

        for l, c in month_leaders:
            global_leaders[l].append((month,c))
        for o, c in month_outermosts:
            global_outermosts[o].append((month, c))

    print
    for id, months in global_outermosts.items():
        if guys[id] in the_losers:
            print guys[id], months