LoslegenKostenlos loslegen

Ausführlichere Beschreibungen einbetten

Eines der letzten vorhergesagten Labels wirkte nicht repräsentativ für die Rezension; das lag wahrscheinlich daran, dass zu wenig Information erfasst wurde, wenn wir nur die Klassenlabels einbetten. Dieses Mal werden stattdessen die Beschreibungen jeder Klasse eingebettet, damit das Modell besser „versteht“, dass du Restaurantbewertungen klassifizierst.

Die folgenden Objekte stehen dir zur Verfügung:

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

Diese Übung ist Teil des Kurses

Einführung in Embeddings mit der OpenAI API

Kurs anzeigen

Anleitung zur Übung

  • Extrahiere eine Liste mit den Stimmungsbeschreibungen und bette sie ein.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen