Nœuds partagés dans l'autre partition
Pour renforcer votre compréhension des systèmes de recommandation, nous allons commencer par les bases. Ici, l'objectif est de calculer la similarité entre utilisateurs dans les graphes bipartis.
Votre tâche est d'écrire une fonction qui prend deux nœuds en entrée et retourne l'ensemble des nœuds de dépôt qui sont partagés entre les deux nœuds utilisateurs.
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!
Cette activité fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions de l’exercice
- Écrivez une fonction appelée
shared_partition_nodes()qui prend 3 arguments — un grapheG,node1etnode2— et retourne l'ensemble des nœuds partagés entrenode1etnode2.- Vérifiez que
node1etnode2appartiennent à la même partition en utilisant une instruction assert et le 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
nbrs1etnbrs2à l'aide de la méthode.intersection()des ensembles. - Affichez le nombre de dépôts partagés entre les utilisateurs
'u7909'et'u2148'en utilisant votre fonctionshared_partition_nodes()avec la fonctionlen().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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(____(____))