Reviews op sentiment classificeren
Nu je de embeddings hebt berekend, is het tijd om de cosinusafstanden te berekenen en het meest vergelijkbare label te bepalen.
Je doet dit door een functie find_closest() te definiëren, die je kunt gebruiken om de embeddings van één vector met meerdere andere te vergelijken en de dichtstbijzijnde afstand en bijbehorende index terug te geven. Vervolgens loop je over de reviews en gebruik je find_closest() om voor elke review de dichtstbijzijnde afstand te vinden, waarna je met de index het geclassificeerde label ophaalt.
De objecten class_embeddings en review_embeddings die je in de vorige oefening hebt gemaakt, zijn beschikbaar, net als reviews en sentiments.
Deze oefening maakt deel uit van de cursus
Introductie tot Embeddings met de OpenAI API
Oefeninstructies
- Definieer een functie
find_closest()die de afstand en index teruggeeft van de meest vergelijkbare embedding met dequery_vector. - Gebruik
find_closest()om de kleinste afstand te vinden tussen de embeddings van elke review en declass_embeddings. - Gebruik de
'index'vanclosestomsentimentste subsetten en het'label'op te halen.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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}')