開始使用免費開始

推薦器函式

在這個練習中,你將建立一個推薦器函式 get_recommendations(),就像在課程與前一個練習中討論的那樣。它會接收一個片名、餘弦相似度矩陣,以及電影標題與索引的對應表作為參數,並輸出與原始片名最相似的 10 個標題(不包含該片名本身)。

你已獲得一個資料集 metadata,包含電影標題與簡介。此資料集的前幾列已列印到主控台。

本練習屬於課程

Python 中文本特徵工程

檢視課程

練習說明

  • 透過 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]
編輯並執行程式碼