ComenzarEmpieza gratis

Clasificar el sentimiento de las opiniones

Ahora que has calculado las incrustaciones, es el momento de calcular las distancias coseno y extraer la etiqueta más similar.

Lo harás definiendo una función llamada find_closest(), que puede utilizarse para comparar las incrustaciones entre un vector y otros múltiples, y devolver la distancia más cercana y su índice. A continuación, harás un bucle sobre las reseñas y y utilizarás find_closest() para encontrar la distancia más cercana para cada reseña, extrayendo la etiqueta clasificada utilizando el índice.

Los objetos class_embeddings y review_embeddings que creaste en el último ejercicio están disponibles para que los utilices, así como los objetos reviews y sentiments.

Este ejercicio forma parte del curso

Introducción a las incrustaciones con la OpenAI API

Ver curso

Instrucciones del ejercicio

  • Define una función llamada find_closest() que devuelva la distancia y el índice de la incrustación más similar a la query_vector.
  • Utiliza find_closest() para encontrar la distancia más cercana entre las incrustaciones de cada revisión y el class_embeddings.
  • Utiliza el 'index' de closest para subconjuntar sentiments y extraer el 'label'.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

# Define a function to return the minimum distance and its index
def find_closest(query_vector, embeddings):
  distances = []
  for index, embedding in enumerate(embeddings):
    dist = distance.cosine(____, ____)
    distances.append({"distance": dist, "index": index})
  return ____(distances, key=lambda x: x["distance"])

for index, review in enumerate(reviews):
  # Find the closest distance and its index using find_closest()
  closest = ____(review_embeddings[____], ____)
  # Subset sentiments using the index from closest
  label = ____
  print(f'"{review}" was classified as {label}')
Editar y ejecutar código