Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Pobierz indeks filmu odpowiadającego podanemu tytułowi, korzystając z klucza title w indices.
  • Wyodrębnij dziesięć najbardziej podobnych filmów z sim_scores i zapisz wynik z powrotem w sim_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]
Edytuj i uruchom kod