Funkcja rekomendująca
W tym ćwiczeniu zbudujesz funkcję rekomendującą get_recommendations(), omówioną podczas lekcji i w poprzednim ćwiczeniu. Jak wiesz, przyjmuje ona tytuł filmu, macierz podobieństwa kosinusowego oraz mapowanie tytułów na indeksy, a zwraca listę 10 tytułów najbardziej podobnych do podanego (z wyłączeniem samego tytułu).
Do dyspozycji masz zbiór danych metadata zawierający tytuły i opisy filmów. Jego pierwsze wiersze zostały wyświetlone w konsoli.
To ćwiczenie jest częścią kursu
Inżynieria cech dla NLP w Pythonie
Instrukcje do ćwiczenia
- Pobierz indeks filmu odpowiadającego podanemu tytułowi, korzystając z klucza
titlewindices. - Wyodrębnij dziesięć najbardziej podobnych filmów z
sim_scoresi zapisz wynik z powrotem wsim_scores.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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]