IniziaInizia gratis

La funzione di raccomandazione

In questo esercizio costruiremo una funzione di raccomandazione get_recommendations(), come discusso nella lezione e nell’esercizio precedente. Come sappiamo, prende in input un titolo, una matrice di similarità coseno e una mappatura tra titolo e indice, e restituisce un elenco di 10 titoli più simili al titolo di partenza (escludendo il titolo stesso).

Ti è stato fornito un insieme di dati metadata che contiene i titoli dei film e le relative trame. L’intestazione di questo insieme di dati è stata stampata in console.

Questo esercizio fa parte del corso

Feature Engineering per NLP in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Ottieni l’indice del film che corrisponde al titolo usando la chiave title di indices.
  • Estrai i dieci film più simili da sim_scores e salva il risultato di nuovo in sim_scores.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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]
Modifica ed esegui il codice