1. Learn
  2. /
  3. Courses
  4. /
  5. Python 中級ネットワーク解析

Connected

Exercise

類似ユーザーを見つける

ここまで学んだことを活かして、指定したユーザーに最も似ているユーザーを見つける関数 most_similar_users() を作成します。

この関数の骨組みは用意してあります。ノードのリスト user_nodes は、関数に渡された対象ユーザー「以外」のすべてのユーザーを含みます。あなたのタスクは、この対象ユーザーに最も似ているユーザーを見つけるように関数を完成させることです。前の演習で作成した user_similarity() 関数を活用します。

similarities という辞書が用意されており、キーがスコア、値のリストがノードになっています。defaultdict を見たことがなくても心配いりません——Chapter 3 で詳しく学びます! 挙動は通常の Python の辞書とまったく同じです。

Instructions

100 XP
  • user_nodes を反復処理し、user_similarity() 関数を使って、user と各 user_node(n)の類似度を計算します。結果を similarity として保存します。
  • スコアとノードを similarities 辞書に追加します。キーはスコア(similarity)、値はノード(n)です。
  • 最大の類似度スコアを計算します。まず .keys() メソッドで similarities のキー(スコア)にアクセスし、max() 関数を使います。結果を max_similarity として保存します。
  • 最大類似度を共有するユーザーのリストを返します。このユーザーのリストは、similarities の max_similarity キーに対応する値です。
  • most_similar_users() 関数を使って、ユーザー 'u4560' に最も似ているユーザーのリストを出力します。