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_vectorzurückgibt. - Nutze
find_closest(), um den geringsten Abstand zwischen den Einbettungen der einzelnen Rezensionen undclass_embeddingszu finden. - Benutze die
'index'vonclosest, umsentimentszu unterteilen und die'label'zu extrahieren.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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}')