Nós compartilhados na outra partição
Para construir seu entendimento sobre sistemas de recomendação, vamos começar pelo básico. O foco aqui é calcular a similaridade entre usuários em grafos bipartidos.
Sua tarefa é escrever uma função que receba dois nós e retorne o conjunto de nós de repositório que são compartilhados entre os dois nós de usuário.
Você vai achar úteis, neste exercício, os seguintes métodos e funções — .neighbors(), set() e .intersection() — além, é claro, da função shared_partition_nodes que você vai definir!
Este exercício faz parte do curso
Análise de Redes Intermediária em Python
Instruções do exercício
- Escreva uma função chamada
shared_partition_nodes()que receba 3 argumentos — um grafoG,node1enode2— e retorne o conjunto de nós que são compartilhados entrenode1enode2.- Verifique se
node1enode2pertencem à mesma partição usando uma instrução assert e a palavra‑chave'bipartite'. - Obtenha os vizinhos de
node1e armazene comonbrs1. - Obtenha os vizinhos de
node2e armazene comonbrs2.
- Verifique se
- Calcule a sobreposição entre
nbrs1enbrs2usando o método.intersection()de conjuntos. - Imprima o número de repositórios compartilhados entre os usuários
'u7909'e'u2148'usando sua funçãoshared_partition_nodes()junto com a funçãolen().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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(____(____))