LoslegenKostenlos loslegen

Geteilte Knoten in anderer Partition

Um dein Verständnis von Empfehlungssystemen aufzubauen, starten wir mit den Grundlagen. Der Fokus liegt hier darauf, Ähnlichkeiten zwischen Nutzern in bipartiten Graphen zu berechnen.

Deine Aufgabe ist es, eine Funktion zu schreiben, die zwei Knoten entgegennimmt und die Menge der Repository-Knoten zurückgibt, die zwischen den beiden Nutzerknoten geteilt werden.

Die folgenden Methoden und Funktionen sind in dieser Übung hilfreich: .neighbors(), set() und .intersection() – neben natürlich der Funktion shared_partition_nodes, die du definieren wirst!

Diese Übung ist Teil des Kurses

Fortgeschrittene Netzwerkanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Schreibe eine Funktion namens shared_partition_nodes(), die 3 Argumente entgegennimmt – einen Graphen G, node1 und node2 – und die Menge der Knoten zurückgibt, die node1 und node2 gemeinsam haben.
    • Prüfe mit einem assert-Statement und dem Schlüsselwort 'bipartite', dass node1 und node2 zur gleichen Partition gehören.
    • Ermittle die Nachbarn von node1 und speichere sie als nbrs1.
    • Ermittle die Nachbarn von node2 und speichere sie als nbrs2.
  • Berechne die Überschneidung zwischen nbrs1 und nbrs2 mit der Set-Methode .intersection().
  • Gib die Anzahl der gemeinsamen Repositories der Nutzer 'u7909' und 'u2148' aus, indem du deine Funktion shared_partition_nodes() zusammen mit der Funktion len() verwendest.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen