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
Oefeninstructies
- Schrijf een functie
shared_partition_nodes()die 3 argumenten aanneemt — een graafG,node1ennode2— en de set knooppunten teruggeeft die gedeeld worden tussennode1ennode2.- Controleer met een assert-statement en het sleutelwoord
'bipartite'datnode1ennode2tot dezelfde partitie behoren. - Haal de buren van
node1op en sla ze op alsnbrs1. - Haal de buren van
node2op en sla ze op alsnbrs2.
- Controleer met een assert-statement en het sleutelwoord
- Bepaal de overlap tussen
nbrs1ennbrs2met de set-methode.intersection(). - Print het aantal gedeelde repositories tussen gebruikers
'u7909'en'u2148'met je functieshared_partition_nodes()in combinatie met de functielen().
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(____(____))