เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

โหนดร่วมใน partition อื่น

เพื่อสร้างความเข้าใจพื้นฐานของระบบแนะนำ (recommendation system) เราจะเริ่มจากหลักการสำคัญ นั่นคือการคำนวณความคล้ายคลึงของผู้ใช้ในกราฟแบบ bipartite

โจทย์คือการเขียนฟังก์ชันที่รับโหนด 2 โหนดเป็น input แล้วคืนค่าเซตของโหนด repository ที่โหนดผู้ใช้ทั้งสองมีร่วมกัน

เมธอดและฟังก์ชันที่จะเป็นประโยชน์ในแบบฝึกหัดนี้ได้แก่ .neighbors(), set() และ .intersection() รวมถึงฟังก์ชัน shared_partition_nodes ที่จะกำหนดขึ้นเองด้วย

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์เครือข่ายระดับกลางใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เขียนฟังก์ชันชื่อ shared_partition_nodes() ที่รับ argument 3 ตัว ได้แก่ กราฟ G, node1 และ node2 แล้วคืนค่าเซตของโหนดที่ node1 และ node2 มีร่วมกัน
    • ตรวจสอบว่า node1 และ node2 อยู่ใน partition เดียวกัน โดยใช้ assert statement และ keyword 'bipartite'
    • ดึง neighbor ของ node1 แล้วเก็บไว้ใน nbrs1
    • ดึง neighbor ของ node2 แล้วเก็บไว้ใน nbrs2
  • คำนวณส่วนที่ทับซ้อนกันระหว่าง nbrs1 และ nbrs2 โดยใช้เมธอด .intersection() ของ set
  • แสดงจำนวน repository ที่ผู้ใช้ 'u7909' และ 'u2148' มีร่วมกัน โดยใช้ฟังก์ชัน shared_partition_nodes() ร่วมกับฟังก์ชัน len()

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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(____(____))
แก้ไขและรันโค้ด