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
<Kurs>Einführung in Embeddings mit der OpenAI API</Kurs>Übungsanweisungen
- 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 praktische Ü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}')