始める無料で始める

レコメンダ関数

この演習では、レッスンおよび前の演習で説明したレコメンダ関数 get_recommendations() を作成します。ご存じのとおり、この関数はタイトル、コサイン類似度行列、映画タイトルとインデックスの対応マッピングを引数に取り、元のタイトルに最も近いタイトルを(元のタイトル自体を除いて)10件リストで返します。

映画のタイトルと概要を含むデータセット metadata が与えられています。このデータセットの先頭はコンソールに表示済みです。

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

Pythonで学ぶNLPの特徴量エンジニアリング

コースを見る

演習の手順

  • indicestitle キーを使って、指定したタイトルに一致する映画のインデックスを取得します。
  • sim_scores から最も類似した映画を10件抽出し、抽出結果を sim_scores に格納し直します。

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

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

# Generate mapping between titles and index
indices = pd.Series(metadata.index, index=metadata['title']).drop_duplicates()

def get_recommendations(title, cosine_sim, indices):
    # Get index of movie that matches title
    idx = ____[____]
    # Sort the movies based on the similarity scores
    sim_scores = list(enumerate(cosine_sim[idx]))
    sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
    # Get the scores for 10 most similar movies
    sim_scores = sim_scores[____]
    # Get the movie indices
    movie_indices = [i[0] for i in sim_scores]
    # Return the top 10 most similar movies
    return metadata['title'].iloc[movie_indices]
コードを編集して実行