Klassificera recensionssentiment
Nu när du har beräknat inbäddningarna är det dags att räkna ut cosinusavstånden och hitta den närmaste etiketten.
Du gör detta genom att definiera en funktion kallad find_closest(), som jämför inbäddningarna mellan en vektor och flera andra och returnerar det kortaste avståndet samt dess index. Sedan loopar du över recensionerna och använder find_closest() för att hitta det närmaste avståndet för varje recension, och extraherar den klassificerade etiketten via indexet.
Objekten class_embeddings och review_embeddings som du skapade i föregående övning finns tillgängliga, liksom reviews och sentiments.
Den här övningen är en del av kursen
Introduktion till inbäddningar med OpenAI API
Övningsinstruktioner
- Definiera en funktion kallad
find_closest()som returnerar avståndet och indexet för den inbäddning som liknarquery_vectormest. - Använd
find_closest()för att hitta det närmaste avståndet mellan varje recensions inbäddningar ochclass_embeddings. - Använd
'index'frånclosestför att indexerasentimentsoch extrahera'label'.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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}')