ПочатиПочніть безкоштовно

Спільні вузли в іншій частці

Щоб поступово вибудувати розуміння систем рекомендацій, почнімо з основ. Тут ми зосередимося на обчисленні подібності користувачів у двочасткових графах.

Ваше завдання — написати функцію, яка приймає два вузли та повертає множину вузлів-репозиторіїв, спільних для цих двох вузлів-користувачів.

У цій вправі вам стануть у пригоді такі методи й функції: .neighbors(), set() і .intersection(), а також, звісно, функція shared_partition_nodes, яку ви визначите!

Ця вправа є частиною курсу

Середній рівень Network Analysis у Python

Переглянути курс

Інструкції до вправи

  • Напишіть функцію shared_partition_nodes(), яка приймає 3 аргументи — граф G, node1 і node2 — та повертає множину вузлів, спільних для node1 і node2.
    • Перевірте, що node1 і node2 належать до однієї частки, використавши оператор assert і ключ 'bipartite'.
    • Отримайте сусідів node1 і збережіть їх у змінній nbrs1.
    • Отримайте сусідів node2 і збережіть їх у змінній nbrs2.
  • Обчисліть перетин між nbrs1 і nbrs2, використавши метод множин .intersection().
  • Виведіть кількість спільних репозиторіїв між користувачами 'u7909' і 'u2148', застосувавши вашу функцію shared_partition_nodes() разом із функцією len().

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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(____(____))
Редагувати та запускати код