Začněte nyníZačněte zdarma

Doporučování spolueditorů, kteří zatím nespolupracovali

Teď využiješ koncept otevřených trojúhelníků k tomu, aby sis doporučil/a uživatele na GitHubu ke spolupráci!

Toto cvičení je součástí kurzu

Úvod do analýzy sítí v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Sestav seznam dvojic uživatelů GitHubu, kterým by měla být doporučena vzájemná spolupráce. Postupuj takto:
    • V prvním cyklu for iteruj přes všechny uzly grafu G včetně metadat (zadej data=True).
    • Ve druhém cyklu for iteruj přes všechny možné kombinace trojúhelníků – k jejich identifikaci použij funkci combinations() s hodnotou size nastavenou na 2.
    • Pokud mezi n1 a n2 neexistuje hrana, spolupráce těchto dvou uzlů (uživatelů) by měla být doporučena – v takovém případě zvyš hodnotu klíče (n1), (n2) ve slovníku recommended. Existenci hrany mezi n1 a n2 ověříš metodou .has_edge().
  • Pomocí list comprehension identifikuj 10 nejlepších dvojic uživatelů vhodných ke spolupráci. Jako iterable použij dvojice klíč–hodnota ze slovníku recommended (přístupné metodou .items()), přičemž podmínka má být splněna tehdy, když je count větší než desátá nejvyšší hodnota v all_counts. Protože all_counts je seřazeno vzestupně, dostaneš se k top 10 přes all_counts[-10].

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Import necessary modules
from itertools import combinations
from collections import defaultdict

# Initialize the defaultdict: recommended
recommended = defaultdict(int)

# Iterate over all the nodes in G
for n, d in ____:

    # Iterate over all possible triangle relationship combinations
    for n1, n2 in ____(list(G.neighbors(n)), ____):

        # Check whether n1 and n2 do not have an edge
        if not G.has_edge(____, ____):

            # Increment recommended
            ____[(____, ____)] += 1

# Identify the top 10 pairs of users
all_counts = sorted(recommended.values())
top10_pairs = [pair for pair, count in ____ if ____ > ____]
print(top10_pairs)
Upravit a spustit kód