Aan de slagBegin gratis

Gedeelde knooppunten in andere partitie

Om je begrip van aanbevelingssystemen op te bouwen, beginnen we bij de basis. De focus ligt hier op het berekenen van gebruikersgelijkenis in bipartiete grafen.

Jouw taak is om een functie te schrijven die twee knooppunten ontvangt en de set repository-knooppunten teruggeeft die tussen de twee gebruikersknooppunten gedeeld worden.

De volgende methoden en functies zijn handig in deze oefening: .neighbors(), set(), en .intersection() — naast natuurlijk de functie shared_partition_nodes die je zelf gaat definiëren!

Deze oefening maakt deel uit van de cursus

Gemiddelde netwerkanalyse in Python

Bekijk cursus

Oefeninstructies

  • Schrijf een functie shared_partition_nodes() die 3 argumenten aanneemt — een graaf G, node1 en node2 — en de set knooppunten teruggeeft die gedeeld worden tussen node1 en node2.
    • Controleer met een assert-statement en het sleutelwoord 'bipartite' dat node1 en node2 tot dezelfde partitie behoren.
    • Haal de buren van node1 op en sla ze op als nbrs1.
    • Haal de buren van node2 op en sla ze op als nbrs2.
  • Bepaal de overlap tussen nbrs1 en nbrs2 met de set-methode .intersection().
  • Print het aantal gedeelde repositories tussen gebruikers 'u7909' en 'u2148' met je functie shared_partition_nodes() in combinatie met de functie len().

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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(____(____))
Code bewerken en uitvoeren