Mulai sekarangMulai gratis

Menyematkan deskripsi yang lebih terperinci

Salah satu label yang diprediksi terakhir tampaknya tidak mewakili ulasan; kemungkinan karena kurangnya informasi yang tertangkap saat kita hanya menyematkan label kelas. Kali ini, deskripsi setiap kelas akan disematkan agar model lebih "memahami" bahwa Anda sedang mengklasifikasikan ulasan restoran.

Objek berikut tersedia untuk Anda gunakan:

sentiments = [{'label': 'Positive',
               'description': 'A positive restaurant review'},
              {'label': 'Neutral',
               'description':'A neutral restaurant review'},
              {'label': 'Negative',
               'description': 'A negative restaurant review'}]

reviews = ["The food was delicious!",
           "The service was a bit slow but the food was good",
           "The food was cold, really disappointing!"]

Latihan ini merupakan bagian dari kursus

Pengantar Embeddings dengan OpenAI API

Lihat Kursus

Instruksi latihan

  • Ekstrak daftar yang berisi deskripsi sentimen dan lakukan embedding.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# Extract and embed the descriptions from sentiments
class_descriptions = ____
class_embeddings = ____
review_embeddings = create_embeddings(reviews)

def find_closest(query_vector, embeddings):
  distances = []
  for index, embedding in enumerate(embeddings):
    dist = distance.cosine(query_vector, embedding)
    distances.append({"distance": dist, "index": index})
  return min(distances, key=lambda x: x["distance"])

for index, review in enumerate(reviews):
  closest = find_closest(review_embeddings[index], class_embeddings)
  label = sentiments[closest['index']]['label']
  print(f'"{review}" was classified as {label}')
Edit dan Jalankan Kode