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

Thước đo độ tương đồng giữa người dùng

Sau khi bạn đã viết một hàm để tính tập các nút được chia sẻ giữa hai nút, giờ bạn sẽ viết một hàm để tính một thước đo độ tương đồng giữa hai người dùng: số dự án được chia sẻ giữa hai người dùng chia cho tổng số nút ở partition còn lại. Thước đo này có thể được dùng để tìm những người dùng giống nhau.

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

  • Hoàn thiện hàm user_similarity() để tính độ tương đồng giữa user1user2.
    • Dùng các câu lệnh assert để kiểm tra user1user2 thuộc partition 'users'.
    • Dùng hàm shared_partition_nodes() bạn đã viết ở bài trước để lấy tập các nút dùng chung giữa hai người dùng user1user2.
    • Trả về tỉ lệ trên partition projects. Cụ thể, chia số lượng shared_nodes cho tổng số nút trong partition 'projects'.
  • Tính điểm tương đồng giữa hai người dùng 'u4560''u1880'. Thực hiện như sau:
    • Trước tiên lấy các nút trong partition 'projects' bằng hàm get_nodes_from_partition() của bạn.
    • Sau đó dùng hàm user_similarity() để tính điểm.

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 user_similarity(G, user1, user2, proj_nodes):
    # Check that the nodes belong to the 'users' partition
    ____ G.nodes[____]['bipartite'] == '____'
    ____ G.nodes[____]['bipartite'] == '____'

    # Get the set of nodes shared between the two users
    shared_nodes = ____

    # Return the fraction of nodes in the projects partition
    return len(____) / len(____)

# Compute the similarity score between users 'u4560' and 'u1880'
project_nodes = ____
similarity_score = ____

print(similarity_score)
Chỉnh sửa và Chạy Mã