Funcția de recomandare
În acest exercițiu, vom construi o funcție de recomandare get_recommendations(), așa cum a fost discutat în lecție și în exercițiul anterior. După cum știm, aceasta primește ca argumente un titlu, o matrice de similaritate cosinus și o mapare între titlurile filmelor și indecșii lor, și returnează o listă cu cele 10 titluri cele mai similare cu titlul original (excluzând titlul însuși).
Ai la dispoziție un set de date metadata care conține titlurile și rezumatele filmelor. Primele rânduri ale acestui set de date au fost afișate în consolă.
Acest exercițiu face parte din cursul
Ingineria caracteristicilor pentru NLP în Python
Instrucțiuni pentru exercițiu
- Obține indexul filmului care corespunde titlului, folosind cheia
titledinindices. - Extrage cele mai similare zece filme din
sim_scoresși stochează rezultatul înapoi însim_scores.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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]