始める無料で始める

もう一方のパーティションにある共有ノード

レコメンデーションシステムの考え方を身につけるために、まずは基礎から始めます。ここでは二部グラフにおけるユーザー同士の類似度の計算に焦点を当てます。

あなたの課題は、2つのノードを受け取り、その2つのユーザーノードの間で共有されているリポジトリノードの集合を返す関数を書くことです。

この演習では、.neighbors()set().intersection() といったメソッドや関数、そしてあなたが定義する shared_partition_nodes 関数が役に立ちます!

この演習はコースの一部です

Python 中級ネットワーク解析

コースを見る

演習の手順

  • 3つの引数(グラフ Gnode1node2)を受け取り、node1node2 の間で共有されるノードの集合を返す shared_partition_nodes() という関数を書いてください。
    • assert 文と 'bipartite' キーワードを使って、node1node2 が同じパーティションに属していることを確認します。
    • node1 の隣接ノードを取得して nbrs1 として保存します。
    • node2 の隣接ノードを取得して nbrs2 として保存します。
  • 集合の .intersection() メソッドを使って、nbrs1nbrs2 の重なりを計算します。
  • あなたの shared_partition_nodes() 関数と len() 関数を組み合わせて、ユーザー 'u7909''u2148' の間で共有されているリポジトリ数を出力してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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(____(____))
コードを編集して実行