शुरू करेंमुफ़्त में शुरू करें

मिलते-जुलते यूज़र्स खोजें

अब आप अभी तक सीखी बातों पर आगे बढ़ते हुए most_similar_users() नाम का एक फंक्शन लिखेंगे जो दिए गए किसी यूज़र से सबसे मिलते-जुलते यूज़र्स को ढूँढेगा.

इस फंक्शन की शुरुआती संरचना आपके लिए लिख दी गई है. एक नोड्स की लिस्ट user_nodes बनाई गई है, जिसमें उस दिए गए यूज़र के अलावा बाकी सभी यूज़र्स शामिल हैं जिसे फंक्शन में पास किया गया है. आपका कार्य है फंक्शन को पूरा करना ताकि यह दिए गए यूज़र से सबसे मिलते-जुलते यूज़र्स ढूँढ सके. इसमें मदद के लिए आप पिछले अभ्यास वाले अपने user_similarity() फंक्शन का उपयोग करेंगे.

similarities नाम की एक डिक्शनरी सेटअप की गई है, जिसमें keys स्कोर हैं और values नोड्स की लिस्ट. यदि आपने पहले कभी defaultdict नहीं देखा है, तो चिंता न करें — आप इसके बारे में अध्याय 3 में और सीखेंगे! यह एक सामान्य Python डिक्शनरी की तरह ही काम करता है.

यह अभ्यास पाठ्यक्रम का हिस्सा है

इंटरमीडिएट Network Analysis in Python

पाठ्यक्रम देखें

अभ्यास निर्देश

  • user_nodes पर iterate करें और अपने user_similarity() फंक्शन का उपयोग करके user और हर user_node (n) के बीच similarity निकालें. परिणाम को similarity के रूप में स्टोर करें.
  • स्कोर और नोड को similarities डिक्शनरी में जोड़ें. key होगी स्कोर — similarity — और value होगी नोड — n.
  • अधिकतम similarity स्कोर निकालें. इसके लिए पहले .keys() मेथड से similarities की keys (जिनमें स्कोर हैं) लें, फिर max() फंक्शन का उपयोग करें. परिणाम को max_similarity के रूप में स्टोर करें.
  • उन यूज़र्स की लिस्ट रिटर्न करें जिनकी similarity अधिकतम है. यह लिस्ट similarities में key max_similarity की value है.
  • अपने most_similar_users() फंक्शन का उपयोग करके यूज़र 'u4560' से सबसे मिलते-जुलते यूज़र्स की लिस्ट प्रिंट करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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(____)
कोड संपादित करें और चलाएँ