Bắt đầu ngayBắt đầu miễn phí

Các node chung ở partition còn lại

Để hình thành khái niệm về hệ thống gợi ý, chúng ta sẽ bắt đầu từ những điều cơ bản. Trọng tâm ở đây là tính độ tương đồng giữa người dùng trong đồ thị hai phía (bipartite).

Nhiệm vụ của bạn là viết một hàm nhận vào hai node và trả về tập các node repository được chia sẻ giữa hai node người dùng đó.

Bạn sẽ thấy các phương thức và hàm sau hữu ích trong bài này: .neighbors(), set(), và .intersection() — ngoài ra, tất nhiên còn có hàm shared_partition_nodes mà bạn sẽ định nghĩa!

Bài tập này là một phần của khóa học

Phân tích mạng nâng cao với Python

Xem khóa học

Hướng dẫn bài tập

  • Viết một hàm tên shared_partition_nodes() nhận 3 đối số — một đồ thị G, node1, và node2 — và trả về tập các node được chia sẻ giữa node1node2.
    • Kiểm tra node1node2 thuộc cùng một partition bằng câu lệnh assert và từ khóa 'bipartite'.
    • Lấy các láng giềng của node1 và lưu vào nbrs1.
    • Lấy các láng giềng của node2 và lưu vào nbrs2.
  • Tính phần giao giữa nbrs1nbrs2 bằng phương thức .intersection() của set.
  • In ra số lượng repository dùng chung giữa hai người dùng 'u7909''u2148' bằng cách dùng hàm shared_partition_nodes() của bạn cùng với hàm len().

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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(____(____))
Chỉnh sửa và Chạy Mã