Bewertungen nach Stimmung klassifizieren
Nachdem du die Embeddings berechnet hast, ist es Zeit, die Kosinus-Distanzen zu berechnen und das ähnlichste Label zu ermitteln.
Das machst du, indem du eine Funktion namens find_closest() definierst. Sie vergleicht die Embeddings zwischen einem Vektor und mehreren anderen und gibt die nächste Distanz sowie deren Index zurück. Anschließend iterierst du über die Reviews und verwendest find_closest(), um die jeweils nächste Distanz zu finden, und extrahierst mithilfe des Index das klassifizierte Label.
Die Objekte class_embeddings und review_embeddings, die du in der letzten Übung erstellt hast, stehen dir zur Verfügung, ebenso wie reviews und sentiments.
Diese Übung ist Teil des Kurses
Einführung in Embeddings mit der OpenAI API
Anleitung zur Übung
- Definiere eine Funktion
find_closest(), die die Distanz und den Index des ähnlichsten Embeddings zumquery_vectorzurückgibt. - Verwende
find_closest(), um die kleinste Distanz zwischen den Embeddings jedes Reviews und denclass_embeddingszu finden. - Verwende den
'index'vonclosest, umsentimentszu subsetten und das'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}')