Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Haal de index op van de film die overeenkomt met de titel door de title-sleutel van indices te gebruiken.
  • Haal de tien meest vergelijkbare films uit sim_scores en sla ze weer op in sim_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]
Code bewerken en uitvoeren