La función de recomendación
En este ejercicio, vamos a construir una función de recomendación get_recommendations(), como se explicó en la lección y en el ejercicio anterior. Como sabemos, recibe un título, una matriz de similitud coseno y un mapeo de títulos e índices de películas como argumentos, y devuelve una lista con los 10 títulos más similares al título original (excluyendo el propio título).
Se te proporciona un conjunto de datos metadata que contiene los títulos y resúmenes de las películas. Se ha mostrado por consola la cabecera de este conjunto de datos.
Este ejercicio forma parte del curso
Ingeniería de características para NLP en Python
Instrucciones del ejercicio
- Obtén el índice de la película que coincide con el título usando la clave
titledeindices. - Extrae las diez películas más similares de
sim_scoresy vuelve a guardarlas ensim_scores.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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]