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
Övningsinstruktioner
- Skriv en funktion som heter
shared_partition_nodes()och som tar emot 3 argument – en grafG,node1ochnode2– och returnerar den mängd noder som är gemensamma förnode1ochnode2.- Kontrollera att
node1ochnode2tillhör samma partition med hjälp av en assert-sats och nyckelordet'bipartite'. - Hämta grannarna till
node1och lagra dem somnbrs1. - Hämta grannarna till
node2och lagra dem somnbrs2.
- Kontrollera att
- Beräkna överlappningen mellan
nbrs1ochnbrs2med 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 funktionshared_partition_nodes()tillsammans med funktionenlen().
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(____(____))