Zacznij terazZacznij za darmo

Wspólne węzły w drugiej partycji

Zanim przejdziemy do budowy systemów rekomendacji, zacznijmy od podstaw. W tym ćwiczeniu skupiamy się na obliczaniu podobieństwa między użytkownikami w grafach dwudzielnych.

Twoim zadaniem jest napisanie funkcji, która przyjmuje dwa węzły i zwraca zbiór węzłów repozytoriów wspólnych dla obu użytkowników.

W tym ćwiczeniu przydadzą ci się: metoda .neighbors(), funkcja set() oraz metoda .intersection() – a oczywiście także funkcja shared_partition_nodes, którą sam zdefiniujesz!

To ćwiczenie jest częścią kursu

Analiza sieci w Pythonie – poziom średniozaawansowany

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz funkcję o nazwie shared_partition_nodes(), która przyjmuje 3 argumenty – graf G, node1 i node2 – i zwraca zbiór węzłów wspólnych dla node1 i node2.
    • Sprawdź za pomocą instrukcji assert i słowa kluczowego 'bipartite', czy node1 i node2 należą do tej samej partycji.
    • Pobierz sąsiadów węzła node1 i zapisz je jako nbrs1.
    • Pobierz sąsiadów węzła node2 i zapisz je jako nbrs2.
  • Oblicz część wspólną zbiorów nbrs1 i nbrs2 za pomocą metody .intersection().
  • Wyświetl liczbę wspólnych repozytoriów użytkowników 'u7909' i 'u2148', korzystając z funkcji shared_partition_nodes() oraz funkcji len().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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(____(____))
Edytuj i uruchom kod