ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Scrie o funcție numită shared_partition_nodes() care primește 3 argumente – un graf G, node1 și node2 – și returnează mulțimea nodurilor comune lui node1 și node2.
    • Verifică că node1 și node2 aparțin aceleiași partiții folosind o instrucțiune assert și cuvântul cheie 'bipartite'.
    • Obține vecinii lui node1 și stochează-i ca nbrs1.
    • Obține vecinii lui node2 și stochează-i ca nbrs2.
  • Calculează intersecția dintre nbrs1 și nbrs2 folosind metoda .intersection() aplicată pe un set.
  • Afișează numărul de repository-uri comune dintre utilizatorii 'u7909' și 'u2148' folosind funcția shared_partition_nodes() împreună cu funcția len().

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(____(____))
Editează și rulează codul