De aanbevelingsfunctie
In deze oefening bouwen we een aanbevelingsfunctie get_recommendations(), zoals besproken in de les en de vorige oefening. Zoals we weten, neemt die een titel, een cosinus-similariteitsmatrix en een mapping van filmtitels naar indexen als argumenten, en geeft een lijst terug van 10 titels die het meest lijken op de oorspronkelijke titel (exclusief de titel zelf).
Je hebt een gegevensset metadata gekregen met de filmtitels en samenvattingen. De kop van deze gegevensset is naar de console geprint.
Deze oefening maakt deel uit van de cursus
Feature Engineering voor NLP in Python
Oefeninstructies
- Haal de index op van de film die overeenkomt met de titel door de
title-sleutel vanindiceste gebruiken. - Haal de tien meest vergelijkbare films uit
sim_scoresen sla ze weer op insim_scores.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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]