Nodi condivisi nell'altra partizione
Per costruire passo dopo passo il concetto di sistemi di raccomandazione, partiamo dalle basi. Qui ci concentriamo sul calcolo della somiglianza tra utenti in grafi bipartiti.
Il tuo compito è scrivere una funzione che prenda in input due nodi e restituisca l'insieme dei nodi repository condivisi tra i due nodi utente.
In questo esercizio ti saranno utili i seguenti metodi e funzioni: .neighbors(), set() e .intersection(), oltre naturalmente alla funzione shared_partition_nodes che definirai!
Questo esercizio fa parte del corso
Analisi di reti intermedia in Python
Istruzioni dell'esercizio
- Scrivi una funzione chiamata
shared_partition_nodes()che accetti 3 argomenti — un grafoG,node1enode2— e restituisca l'insieme dei nodi condivisi tranode1enode2.- Verifica che
node1enode2appartengano alla stessa partizione usando un'istruzione assert e la chiave'bipartite'. - Ottieni i vicini di
node1e salvali innbrs1. - Ottieni i vicini di
node2e salvali innbrs2.
- Verifica che
- Calcola l'overlap tra
nbrs1enbrs2usando il metodo.intersection()degli insiemi. - Stampa il numero di repository condivisi tra gli utenti
'u7909'e'u2148'usando la tua funzioneshared_partition_nodes()insieme alla funzionelen().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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(____(____))