Klassifizierung der Stimmung in Rezensionen
Nachdem du nun die Einbettungen berechnet hast, ist es an der Zeit, die Kosinusabstände zu berechnen und die ähnlichsten Bezeichnungen herauszufiltern.
Dazu definierst du eine Funktion namens find_closest()
, mit der du die Einbettungen zwischen einem Vektor und mehreren anderen Vektoren vergleichen und den nächstgelegenen Abstand und seinen Index zurückgeben kannst. Dann läufst du in einer Schleife über die Rezensionen und verwendest find_closest()
, um den geringsten Abstand für jede Rezension zu finden und das klassifizierte Label mithilfe des Indexes zu extrahieren.
Die Objekte class_embeddings
und review_embeddings
, die du in der letzten Übung erstellt hast, stehen dir zur Verfügung, ebenso wie die Objekte reviews
und sentiments
.
Diese Übung ist Teil des Kurses
Einführung in Embeddings mit der OpenAI API
Anleitung zur Übung
- Definiere eine Funktion namens
find_closest()
, die den Abstand und den Index der ähnlichsten Einbettung zuquery_vector
zurückgibt. - Nutze
find_closest()
, um den geringsten Abstand zwischen den Einbettungen der einzelnen Rezensionen undclass_embeddings
zu finden. - Benutze die
'index'
vonclosest
, umsentiments
zu unterteilen und die'label'
zu extrahieren.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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}')