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
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ữanode1vànode2.- Kiểm tra
node1vànode2thuộ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
node1và lưu vàonbrs1. - Lấy các láng giềng của
node2và lưu vàonbrs2.
- Kiểm tra
- Tính phần giao giữa
nbrs1vànbrs2bằ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'và'u2148'bằng cách dùng hàmshared_partition_nodes()của bạn cùng với hàmlen().
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(____(____))