Спільні вузли в іншій частці
Щоб поступово вибудувати розуміння систем рекомендацій, почнімо з основ. Тут ми зосередимося на обчисленні подібності користувачів у двочасткових графах.
Ваше завдання — написати функцію, яка приймає два вузли та повертає множину вузлів-репозиторіїв, спільних для цих двох вузлів-користувачів.
У цій вправі вам стануть у пригоді такі методи й функції: .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(____(____))