ComenzarEmpieza gratis

Ordenar por similitud

Ahora que has incrustado todas tus características, el siguiente paso es calcular las similitudes. En este ejercicio, definirás una función llamada find_n_closest(), que calcula las distancias coseno entre un vector de consulta y una lista de incrustaciones y devuelve las n distancias más pequeñas y sus índices.

En el siguiente ejercicio, utilizarás esta función para habilitar tu aplicación de búsqueda semántica de productos.

distance se ha importado de scipy.spatial.

Este ejercicio forma parte del curso

Introducción a las incrustaciones con la OpenAI API

Ver curso

Instrucciones de ejercicio

  • Calcula la distancia coseno entre query_vector y embedding.
  • Añade un diccionario que contenga dist y su index a la lista distances.
  • Ordena la lista distances por la clave 'distance' de cada diccionario.
  • Devuelve los primeros n elementos en distances_sorted.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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 ____
Editar y ejecutar código