Ausführlichere Beschreibungen einbetten
Eine der letzten vorhergesagten Bezeichnungen schien nicht repräsentativ für die Überprüfung zu sein. Das lag wahrscheinlich daran, dass nicht alle Informationen erfasst werden, wenn wir nur die Klassenbezeichnungen einbetten. Dieses Mal werden stattdessen Beschreibungen der einzelnen Klassen eingebettet, damit das Modell besser "versteht", dass du Restaurantkritiken klassifizierst.
Die folgenden Objekte stehen dir zur Verfügung:
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!"]
Diese Übung ist Teil des Kurses
Einführung in Embeddings mit der OpenAI API
Anleitung zur Übung
- Extrahiere eine Liste mit den Stimmungsbeschreibungen und bette sie ein.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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}')