Kom igångKom igång gratis

Delade noder i den andra partitionen

För att bygga upp din förståelse av rekommendationssystem börjar vi med grunderna. Fokus här ligger på att beräkna användarlikhet i bipartita grafer.

Din uppgift är att skriva en funktion som tar emot två noder och returnerar den mängd repositorienoder som är gemensamma för de två användarnoderna.

Följande metoder och funktioner kommer att vara till hjälp i den här övningen: .neighbors(), set() och .intersection() – samt naturligtvis funktionen shared_partition_nodes som du själv ska definiera!

Den här övningen är en del av kursen

Nätverksanalys i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Skriv en funktion som heter shared_partition_nodes() och som tar emot 3 argument – en graf G, node1 och node2 – och returnerar den mängd noder som är gemensamma för node1 och node2.
    • Kontrollera att node1 och node2 tillhör samma partition med hjälp av en assert-sats och nyckelordet 'bipartite'.
    • Hämta grannarna till node1 och lagra dem som nbrs1.
    • Hämta grannarna till node2 och lagra dem som nbrs2.
  • Beräkna överlappningen mellan nbrs1 och nbrs2 med hjälp av metoden .intersection() på en mängd.
  • Skriv ut antalet delade repositorier mellan användarna 'u7909' och 'u2148' med hjälp av din funktion shared_partition_nodes() tillsammans med funktionen len().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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(____(____))
Redigera och kör kod