IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Scrivi una funzione chiamata shared_partition_nodes() che accetti 3 argomenti — un grafo G, node1 e node2 — e restituisca l'insieme dei nodi condivisi tra node1 e node2.
    • Verifica che node1 e node2 appartengano alla stessa partizione usando un'istruzione assert e la chiave 'bipartite'.
    • Ottieni i vicini di node1 e salvali in nbrs1.
    • Ottieni i vicini di node2 e salvali in nbrs2.
  • Calcola l'overlap tra nbrs1 e nbrs2 usando il metodo .intersection() degli insiemi.
  • Stampa il numero di repository condivisi tra gli utenti 'u7909' e 'u2148' usando la tua funzione shared_partition_nodes() insieme alla funzione len().

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(____(____))
Modifica ed esegui il codice