MulaiMulai sekarang secara gratis

Merekomendasikan rekan editor yang belum pernah mengedit bersama

Terakhir, Anda akan memanfaatkan konsep open triangle untuk merekomendasikan pengguna di GitHub agar berkolaborasi!

Latihan ini adalah bagian dari kursus

Pengantar Analisis Jaringan di Python

Lihat Kursus

Petunjuk latihan

  • Susun daftar pengguna GitHub yang sebaiknya direkomendasikan untuk saling berkolaborasi. Untuk melakukannya:
    • Pada for loop pertama, iterasikan semua node dalam G, termasuk metadata (dengan menyetel data=True).
    • Pada for loop kedua, iterasikan semua kemungkinan kombinasi segitiga, yang dapat diidentifikasi menggunakan fungsi combinations() dengan size bernilai 2.
    • Jika n1 dan n2 tidak memiliki edge di antara keduanya, maka kolaborasi antara dua node (pengguna) ini sebaiknya direkomendasikan, sehingga naikkan nilai (n1), (n2) pada dictionary recommended dalam kasus ini. Anda dapat memeriksa apakah n1 dan n2 memiliki edge di antara keduanya menggunakan metode .has_edge().
  • Dengan menggunakan list comprehension, identifikasi 10 pasangan pengguna teratas yang sebaiknya direkomendasikan untuk berkolaborasi. Iterable-nya harus berupa pasangan key–value dari dictionary recommended (yang dapat diakses dengan metode .items()), sementara kondisi harus terpenuhi jika count lebih besar dari 10 teratas dalam all_counts. Perhatikan bahwa all_counts diurutkan secara menaik, sehingga Anda dapat mengakses 10 teratas dengan all_counts[-10].

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Import necessary modules
from itertools import combinations
from collections import defaultdict

# Initialize the defaultdict: recommended
recommended = defaultdict(int)

# Iterate over all the nodes in G
for n, d in ____:

    # Iterate over all possible triangle relationship combinations
    for n1, n2 in ____(list(G.neighbors(n)), ____):

        # Check whether n1 and n2 do not have an edge
        if not G.has_edge(____, ____):

            # Increment recommended
            ____[(____, ____)] += 1

# Identify the top 10 pairs of users
all_counts = sorted(recommended.values())
top10_pairs = [pair for pair, count in ____ if ____ > ____]
print(top10_pairs)
Edit dan Jalankan Kode