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
Anleitung zur Übung
- Schreibe eine Funktion namens
shared_partition_nodes(), die 3 Argumente entgegennimmt – einen GraphenG,node1undnode2– und die Menge der Knoten zurückgibt, dienode1undnode2gemeinsam haben.- Prüfe mit einem assert-Statement und dem Schlüsselwort
'bipartite', dassnode1undnode2zur gleichen Partition gehören. - Ermittle die Nachbarn von
node1und speichere sie alsnbrs1. - Ermittle die Nachbarn von
node2und speichere sie alsnbrs2.
- Prüfe mit einem assert-Statement und dem Schlüsselwort
- Berechne die Überschneidung zwischen
nbrs1undnbrs2mit der Set-Methode.intersection(). - Gib die Anzahl der gemeinsamen Repositories der Nutzer
'u7909'und'u2148'aus, indem du deine Funktionshared_partition_nodes()zusammen mit der Funktionlen()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(____(____))