रिव्यू सेंटिमेंट का वर्गीकरण
अब जब आपने embeddings निकाल लिए हैं, तो cosine distances compute करने और सबसे मिलता-जुलता label निकालने का समय है.
आप यह find_closest() नाम का एक फंक्शन परिभाषित करके करेंगे, जो एक वेक्टर और कई अन्य वेक्टरों के embeddings की तुलना कर सकता है, और निकटतम दूरी तथा उसका index लौटा सकता है. फिर आप सभी reviews पर लूप चलाएँगे और प्रत्येक review के लिए सबसे नज़दीकी दूरी पाने हेतु find_closest() का उपयोग करेंगे, तथा index के आधार पर classify किया गया label निकालेंगे.
पिछले अभ्यास में आपने जो class_embeddings और review_embeddings ऑब्जेक्ट बनाए थे, वे उपयोग के लिए उपलब्ध हैं. साथ ही reviews और sentiments भी उपलब्ध हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
OpenAI API के साथ Embeddings परिचय
अभ्यास निर्देश
find_closest()नाम का एक फंक्शन परिभाषित करें जोquery_vectorके सबसे समान embedding की दूरी और index लौटाए.find_closest()का उपयोग करके हर review के embeddings औरclass_embeddingsके बीच सबसे नज़दीकी दूरी निकालें.closestके'index'का उपयोग करकेsentimentsको subset करें और'label'निकालें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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}')