Incrustar descripciones más detalladas
Una de las últimas etiquetas predichas no parecía representativa de la revisión; esto se debió probablemente a la falta de información que se capta cuando sólo incrustamos las etiquetas de clase. Esta vez, en su lugar, se incrustarán descripciones de cada clase, para que el modelo "entienda" mejor que estás clasificando reseñas de restaurantes.
Puedes utilizar los siguientes objetos:
sentiments = [{'label': 'Positive',
'description': 'A positive restaurant review'},
{'label': 'Neutral',
'description':'A neutral restaurant review'},
{'label': 'Negative',
'description': 'A negative restaurant review'}]
reviews = ["The food was delicious!",
"The service was a bit slow but the food was good",
"The food was cold, really disappointing!"]
Este ejercicio forma parte del curso
Introducción a las incrustaciones con la OpenAI API
Instrucciones de ejercicio
- Extrae una lista que contenga las descripciones de los sentimientos e incrústalas.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Extract and embed the descriptions from sentiments
class_descriptions = ____
class_embeddings = ____
review_embeddings = create_embeddings(reviews)
def find_closest(query_vector, embeddings):
distances = []
for index, embedding in enumerate(embeddings):
dist = distance.cosine(query_vector, embedding)
distances.append({"distance": dist, "index": index})
return min(distances, key=lambda x: x["distance"])
for index, review in enumerate(reviews):
closest = find_closest(review_embeddings[index], class_embeddings)
label = sentiments[closest['index']]['label']
print(f'"{review}" was classified as {label}')