Diğer bölümdeki ortak düğümler
Öneri sistemleri kavramını adım adım kurmak için temellerden başlayacağız. Burada odak, iki parçalı (bipartite) graflarda kullanıcı benzerliğini hesaplamak.
Görevin, iki düğüm alan ve iki kullanıcı düğümü arasında ortak olan depo düğümlerinin kümesini döndüren bir fonksiyon yazmak.
Bu egzersizde aşağıdaki metot ve fonksiyonlar işine yarayacak: .neighbors(), set() ve .intersection() — tabii tanımlayacağın shared_partition_nodes fonksiyonuna ek olarak!
Bu egzersiz, kursun bir parçasıdır
Python ile Orta Düzey Ağ (Network) Analizi
Egzersiz talimatları
shared_partition_nodes()adlı, 3 argüman alan — bir grafikG,node1venode2— venode1ilenode2arasında ortak olan düğümlerin kümesini döndüren bir fonksiyon yaz.assertifadesi ve'bipartite'anahtar sözcüğünü kullanaraknode1venode2'nin aynı bölüme ait olduğunu kontrol et.node1'in komşularını al venbrs1olarak sakla.node2'nin komşularını al venbrs2olarak sakla.
- Kesişimi, kümenin
.intersection()metodunu kullanaraknbrs1venbrs2arasında hesapla. shared_partition_nodes()fonksiyonunu velen()fonksiyonunu birlikte kullanarak'u7909've'u2148'kullanıcıları arasındaki ortak depo sayısını yazdır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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(____(____))