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

Sdílené uzly v druhé části grafu

Abychom si vybudovali pevný základ pro pochopení doporučovacích systémů, začneme od základů. V tomto cvičení se zaměříme na výpočet podobnosti uživatelů v bipartitních grafech.

Tvým úkolem je napsat funkci, která přijme dva uzly a vrátí množinu uzlů repozitářů sdílených mezi těmito dvěma uživatelskými uzly.

Při řešení ti přijdou vhod tyto metody a funkce: .neighbors(), set() a .intersection() – a samozřejmě také funkce shared_partition_nodes, kterou si sám/a definuješ!

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

Intermediate Network Analysis in Python

Zobrazit kurz

Pokyny k cvičení

  • Napiš funkci shared_partition_nodes(), která přijme 3 argumenty – graf G, node1 a node2 – a vrátí množinu uzlů sdílených mezi node1 a node2.
    • Pomocí příkazu assert a klíčového slova 'bipartite' ověř, že node1 a node2 patří do stejné části grafu.
    • Získej sousedy uzlu node1 a ulož je jako nbrs1.
    • Získej sousedy uzlu node2 a ulož je jako nbrs2.
  • Pomocí metody .intersection() na množině vypočítej průnik nbrs1 a nbrs2.
  • Vypiš počet sdílených repozitářů mezi uživateli 'u7909' a 'u2148' pomocí funkce shared_partition_nodes() v kombinaci s funkcí len().

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

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

def ____:
    # Check that the nodes belong to the same partition
    assert G.nodes[____]['bipartite'] == G.nodes[____]['bipartite']

    # Get neighbors of node 1: nbrs1
    nbrs1 = ____
    # Get neighbors of node 2: nbrs2
    nbrs2 = ____

    # Compute the overlap using set intersections
    overlap = ____(____).____(____)
    return overlap

# Print the number of shared repositories between users 'u7909' and 'u2148'
print(____(____))
Upravit a spustit kód