1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Phân tích Mạng bằng Python

Connected

Bài tập

Gợi ý đồng biên tập viên chưa từng chỉnh sửa cùng nhau

Cuối cùng, bạn sẽ tận dụng khái niệm tam giác mở để gợi ý người dùng trên GitHub hợp tác với nhau!

Hướng dẫn

100 XP
  • Biên soạn danh sách người dùng GitHub nên được gợi ý hợp tác với nhau. Thực hiện như sau:
    • Ở vòng lặp for thứ nhất, lặp qua tất cả các node trong G, gồm cả metadata (bằng cách đặt data=True).
    • Ở vòng lặp for thứ hai, lặp qua mọi tổ hợp tam giác có thể có, có thể xác định bằng hàm combinations() với size là 2.
    • Nếu n1 và n2 không có cạnh nối giữa chúng, thì nên gợi ý hợp tác giữa hai node (người dùng) này, vì vậy hãy tăng giá trị (n1), (n2) trong dictionary recommended trong trường hợp này. Bạn có thể kiểm tra n1 và n2 có cạnh nối hay không bằng phương thức .has_edge().
  • Dùng list comprehension để xác định 10 cặp người dùng hàng đầu nên được gợi ý hợp tác. Iterable nên là các cặp khóa-giá trị của dictionary recommended (có thể truy cập bằng .items()), còn điều kiện thỏa nếu count lớn hơn top 10 trong all_counts. Lưu ý all_counts được sắp xếp tăng dần, nên bạn có thể truy cập top 10 bằng all_counts[-10].