推薦器函式
在這個練習中,你將建立一個推薦器函式 get_recommendations(),就像在課程與前一個練習中討論的那樣。它會接收一個片名、餘弦相似度矩陣,以及電影標題與索引的對應表作為參數,並輸出與原始片名最相似的 10 個標題(不包含該片名本身)。
你已獲得一個資料集 metadata,包含電影標題與簡介。此資料集的前幾列已列印到主控台。
本練習屬於課程
Python 中文本特徵工程
練習說明
- 透過
indices的title鍵,取得與該片名相符的電影索引。 - 從
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]