Încorporarea unor descrieri mai detaliate
Una dintre etichetele prezise nu părea reprezentativă pentru recenzie; cel mai probabil, aceasta s-a datorat informațiilor limitate capturate atunci când încorporăm doar etichetele de clasă. De data aceasta, vor fi încorporate descrierile fiecărei clase, astfel încât modelul să „înțeleagă" mai bine că tu clasifici recenzii de restaurant.
Următoarele obiecte sunt disponibile pentru a fi utilizate:
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!"]
Acest exercițiu face parte din cursul
Introducere în Embeddings cu API-ul OpenAI
Instrucțiuni pentru exercițiu
- Extrage o listă care conține descrierile sentimentelor și încorporeaz-o.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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}')