Klasifikace sentimentu recenzí
Teď, když máš embeddingy spočítané, je čas vypočítat kosinové vzdálenosti a najít nejpodobnější label.
Definuješ funkci find_closest(), která porovná embeddingy jednoho vektoru s více ostatními a vrátí nejmenší vzdálenost spolu s jejím indexem. Pak budeš procházet recenze a pomocí find_closest() najdeš pro každou z nich nejbližší vzdálenost a pomocí indexu extraktuješ klasifikovaný label.
Objekty class_embeddings a review_embeddings z předchozího cvičení máš k dispozici, stejně jako reviews a sentiments.
Toto cvičení je součástí kurzu
Introduction to Embeddings with the OpenAI API
Pokyny k cvičení
- Definuj funkci
find_closest(), která vrátí vzdálenost a index nejpodobnějšího embeddingu kquery_vector. - Pomocí
find_closest()najdi nejbližší vzdálenost mezi embeddingy každé recenze aclass_embeddings. - Pomocí
'index'hodnotyclosestvyber zsentimentsa extrahuj'label'.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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}')