Noduri comune în cealaltă partiție
Pentru a-ți consolida înțelegerea sistemelor de recomandare, vom începe cu elementele de bază. Accentul cade pe calcularea similitudinii dintre utilizatori în grafuri bipartite.
Sarcina ta este să scrii o funcție care primește două noduri și returnează mulțimea nodurilor de tip repository care sunt comune celor două noduri de tip utilizator.
În acest exercițiu îți vor fi utile metodele și funcțiile următoare: .neighbors(), set() și .intersection() – pe lângă, bineînțeles, funcția shared_partition_nodes pe care o vei defini!
Acest exercițiu face parte din cursul
Analiză intermediară a rețelelor în Python
Instrucțiuni pentru exercițiu
- Scrie o funcție numită
shared_partition_nodes()care primește 3 argumente – un grafG,node1șinode2– și returnează mulțimea nodurilor comune luinode1șinode2.- Verifică că
node1șinode2aparțin aceleiași partiții folosind o instrucțiune assert și cuvântul cheie'bipartite'. - Obține vecinii lui
node1și stochează-i canbrs1. - Obține vecinii lui
node2și stochează-i canbrs2.
- Verifică că
- Calculează intersecția dintre
nbrs1șinbrs2folosind metoda.intersection()aplicată pe un set. - Afișează numărul de repository-uri comune dintre utilizatorii
'u7909'și'u2148'folosind funcțiashared_partition_nodes()împreună cu funcțialen().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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(____(____))