La fonction de recommandation
Dans cet exercice, nous allons créer une fonction de recommandation get_recommendations(), comme expliqué dans la leçon et l'exercice précédent. Comme vous le savez, elle prend en paramètres un titre, une matrice de similarité cosinus, ainsi qu'une correspondance entre titres et indices, puis retourne une liste de 10 titres les plus similaires au titre d'origine (en excluant le titre lui-même).
On vous fournit un jeu de données metadata qui contient les titres de films et leurs résumés. L'en-tête de ce jeu de données a été affiché dans la console.
Cette activité fait partie du cours
Ingénierie des caractéristiques pour le NLP en Python
Instructions de l’exercice
- Obtenez l'indice du film correspondant au titre en utilisant la clé
titledeindices. - Extrayez les dix films les plus similaires à partir de
sim_scoreset réattribuez le résultat àsim_scores.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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]