Функція рекомендацій
У цій вправі ви побудуєте функцію рекомендацій get_recommendations(), як обговорювалося в уроці та попередній вправі. Вона приймає назву фільму, матрицю косинусної подібності та відображення назв фільмів у їхні індекси як аргументи й повертає список із 10 назв, найбільш подібних до початкової (без урахування самої початкової назви).
Вам надано набір даних metadata, що містить назви фільмів і описи. Початок цього набору даних уже виведено в консоль.
Ця вправа є частиною курсу
Інженерія ознак для NLP у Python
Інструкції до вправи
- Отримайте індекс фільму, що відповідає назві, використавши ключ
titleуindices. - Витягніть десять найбільш схожих фільмів із
sim_scoresі збережіть їх назад у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]