Класифікація тональності відгуків
Тепер, коли ви обчислили вкладення (embeddings), час порахувати косинусні відстані та визначити найподібнішу мітку.
Ви зробите це, визначивши функцію find_closest(), яку можна використати для порівняння вкладень між одним вектором і кількома іншими та повернення найближчої відстані й її індексу. Потім ви пройдетеся циклом по відгуках і скористаєтеся find_closest() щоб знайти найближчу відстань для кожного відгуку, витягнувши класифіковану мітку за індексом.
Створені вами в попередній вправі об'єкти class_embeddings і review_embeddings доступні для використання, так само як і reviews та sentiments.
Ця вправа є частиною курсу
Вступ до Embeddings з OpenAI API
Інструкції до вправи
- Визначте функцію
find_closest(), яка повертає відстань та індекс найбільш подібного вкладення доquery_vector. - Використайте
find_closest()щоб знайти найближчу відстань між вкладеннями кожного відгуку таclass_embeddings. - Використайте
'index'зclosest, щоб проіндексуватиsentimentsі витягнути'label'.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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}')