ComenzarEmpieza gratis

Nodos compartidos en la otra partición

Para que vayas entendiendo cómo funcionan los sistemas de recomendación, empezaremos por los fundamentos. Aquí nos centraremos en calcular la similitud entre usuarios en grafos bipartitos.

Tu tarea es escribir una función que reciba dos nodos y devuelva el conjunto de nodos de repositorio que comparten esos dos nodos de usuario.

En este ejercicio te resultarán útiles los siguientes métodos y funciones: .neighbors(), set() y .intersection(), además, por supuesto, de la función shared_partition_nodes que vas a definir.

Este ejercicio forma parte del curso

Análisis de redes intermedio en Python

Ver curso

Instrucciones del ejercicio

  • Escribe una función llamada shared_partition_nodes() que reciba 3 argumentos —un grafo G, node1 y node2— y devuelva el conjunto de nodos que comparten node1 y node2.
    • Comprueba que node1 y node2 pertenecen a la misma partición usando una instrucción assert y la clave 'bipartite'.
    • Obtén los vecinos de node1 y guárdalos como nbrs1.
    • Obtén los vecinos de node2 y guárdalos como nbrs2.
  • Calcula el solapamiento entre nbrs1 y nbrs2 usando el método .intersection() de los conjuntos.
  • Imprime el número de repositorios compartidos entre los usuarios 'u7909' y 'u2148' usando tu función shared_partition_nodes() junto con la función len().

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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(____(____))
Editar y ejecutar código