Nœuds partagés dans l’autre partition
Pour poser les bases des systèmes de recommandation, commençons par les fondamentaux. Ici, l’objectif est de mesurer la similarité entre utilisateurs dans des graphes bipartis.
Votre tâche est d’écrire une fonction qui prend deux nœuds en entrée et renvoie l’ensemble des nœuds « dépôt » partagés entre ces deux nœuds « utilisateur ».
Les méthodes et fonctions suivantes vous seront utiles dans cet exercice : .neighbors(), set() et .intersection() — en plus, bien sûr, de la fonction shared_partition_nodes que vous allez définir !
Cet exercice fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions
- Écrivez une fonction appelée
shared_partition_nodes()qui prend 3 arguments — un grapheG,node1etnode2— et renvoie l’ensemble des nœuds partagés entrenode1etnode2.- Vérifiez que
node1etnode2appartiennent à la même partition à l’aide d’une instruction assert et du mot-clé'bipartite'. - Obtenez les voisins de
node1et stockez-les dansnbrs1. - Obtenez les voisins de
node2et stockez-les dansnbrs2.
- Vérifiez que
- Calculez le chevauchement entre
nbrs1etnbrs2en utilisant la méthode d’ensemble.intersection(). - Affichez le nombre de dépôts partagés entre les utilisateurs
'u7909'et'u2148'en utilisant votre fonctionshared_partition_nodes()conjointement avec la fonctionlen().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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(____(____))