Inizia subitoInizia gratis

Ordinare per somiglianza

Ora che hai creato gli embedding di tutte le tue caratteristiche, il passo successivo è calcolare le similarità. In questo esercizio definirai una funzione chiamata find_n_closest(), che calcola le distanze coseno tra un vettore di query e una lista di embedding e restituisce le n distanze più piccole e i relativi indici.

Nel prossimo esercizio userai questa funzione per abilitare la tua applicazione di ricerca semantica dei prodotti.

distance è stata importata da scipy.spatial.

Questo esercizio fa parte del corso

Introduzione agli Embeddings con l'API di OpenAI

Visualizza corso

Istruzioni dell'esercizio

  • Calcola la distanza coseno tra query_vector ed embedding.
  • Aggiungi alla lista distances un dizionario contenente dist e il suo index.
  • Ordina la lista distances per la chiave 'distance' di ciascun dizionario.
  • Restituisci i primi n elementi in distances_sorted.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

def find_n_closest(query_vector, embeddings, n=3):
  distances = []
  for index, embedding in enumerate(embeddings):
    # Calculate the cosine distance between the query vector and embedding
    dist = ____
    # Append the distance and index to distances
    distances.append({"distance": ____, "index": ____})
  # Sort distances by the distance key
  distances_sorted = ____
  # Return the first n elements in distances_sorted
  return ____
Modifica ed esegui il codice