Klasifikasi sentimen ulasan
Sekarang setelah Anda menghitung embedding, saatnya menghitung jarak kosinus dan mengekstrak label yang paling mirip.
Anda akan melakukannya dengan mendefinisikan fungsi bernama find_closest() yang dapat digunakan untuk membandingkan embedding antara satu vektor dan banyak vektor lainnya, lalu mengembalikan jarak terdekat beserta indeksnya. Selanjutnya, Anda akan melakukan loop pada ulasan dan menggunakan find_closest() untuk menemukan jarak terdekat bagi setiap ulasan, lalu mengekstrak label klasifikasi menggunakan indeks tersebut.
Objek class_embeddings dan review_embeddings yang Anda buat pada latihan sebelumnya tersedia untuk digunakan, begitu juga reviews dan sentiments.
Latihan ini merupakan bagian dari kursus
Pengantar Embeddings dengan OpenAI API
Instruksi latihan
- Definisikan fungsi bernama
find_closest()yang mengembalikan jarak dan indeks embedding yang paling mirip denganquery_vector. - Gunakan
find_closest()untuk menemukan jarak terdekat antara embedding setiap ulasan danclass_embeddings. - Gunakan
'index'dariclosestuntuk melakukan subsetsentimentsdan mengekstrak'label'.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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}')