Aan de slagBegin gratis

Meer gedetailleerde beschrijvingen embedden

Een van de laatst voorspelde labels leek niet representatief voor de review; dat kwam waarschijnlijk doordat we te weinig informatie vastleggen wanneer we alleen de klasselabels embedden. Deze keer embed je in plaats daarvan de beschrijvingen van elke klasse, zodat het model beter "begrijpt" dat je restaurantreviews aan het classificeren bent.

De volgende objecten zijn beschikbaar:

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!"]

Deze oefening maakt deel uit van de cursus

Introductie tot Embeddings met de OpenAI API

Bekijk cursus

Oefeninstructies

  • Haal een lijst met de sentimentbeschrijvingen op en embed die.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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}')
Code bewerken en uitvoeren