BaşlayınÜcretsiz Başlayın

Benzer kullanıcıları bul

Şimdiye kadar öğrendiklerinin üzerine koyarak, verilen bir kullanıcıya en benzer kullanıcıları bulan most_similar_users() adlı bir fonksiyon yazacaksın.

Bu fonksiyonun başlangıcı senin için yazıldı. Fonksiyona geçirilen verilen kullanıcı haricindeki tüm kullanıcıları içeren bir user_nodes düğüm listesi oluşturuldu. Görevin, bu fonksiyona verilen kullanıcıya en benzer kullanıcıları bulacak şekilde fonksiyonu tamamlamak. Bunu yaparken önceki egzersizde yazdığın user_similarity() fonksiyonundan yararlanacaksın.

Anahtarların puanlar, değerlerin ise düğümler listesi olduğu similarities adlı bir sözlük hazırlandı. Daha önce hiç defaultdict görmediysen endişe etme — Bölüm 3'te daha fazlasını öğreneceksin! Normal bir Python sözlüğü gibi çalışır.

Bu egzersiz

Python ile Orta Düzey Ağ (Network) Analizi

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • user_nodes üzerinde yinele ve user_similarity() fonksiyonunu kullanarak user ile her bir user_node (n) arasındaki benzerliği hesapla. Sonucu similarity olarak sakla.
  • Puanı ve düğümü similarities sözlüğüne ekle. Anahtar puan (similarity), değer düğüm (n).
  • En yüksek benzerlik puanını hesapla. Bunu yapmak için önce .keys() yöntemiyle puanları içeren similarities anahtarlarına eriş ve ardından max() fonksiyonunu kullan. Sonucu max_similarity olarak sakla.
  • Maksimum benzerliği paylaşan kullanıcıların listesini döndür. Bu kullanıcı listesi, similarities sözlüğünde max_similarity anahtarının değeridir.
  • 'u4560' kullanıcısına en benzer kullanıcıların listesini yazdırmak için most_similar_users() fonksiyonunu kullan.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

from collections import defaultdict

def most_similar_users(G, user, user_nodes, proj_nodes):
    # Data checks
    assert G.nodes[user]['bipartite'] == 'users'

    # Get other nodes from user partition
    user_nodes = set(user_nodes)
    user_nodes.remove(user)

    # Create the dictionary: similarities
    similarities = defaultdict(list)
    for n in ____:
        similarity = ____(____, ____, ____, ____)
        ____[____].____

    # Compute maximum similarity score: max_similarity
    max_similarity = ____

    # Return list of users that share maximal similarity
    return ____[____]

user_nodes = get_nodes_from_partition(G, 'users')
project_nodes = get_nodes_from_partition(G, 'projects')

print(____)
Kodu Düzenle ve Çalıştır