НачатьНачать бесплатно

Общие узлы в другом разделе

Чтобы освоить концепцию рекомендательных систем, начнём с основ. В этом упражнении мы сосредоточимся на вычислении схожести пользователей в двудольных графах.

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

В этом упражнении вам пригодятся следующие методы и функции: .neighbors(), set() и .intersection() — а также, конечно, функция shared_partition_nodes, которую вы напишете сами!

Это упражнение является частью курса

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