การเรียงลำดับตามความคล้ายคลึง
เมื่อสร้าง embedding ให้กับฟีเจอร์ทั้งหมดแล้ว ขั้นตอนถัดไปคือการคำนวณความคล้ายคลึง ในแบบฝึกหัดนี้ จะได้กำหนดฟังก์ชันชื่อ find_n_closest() ซึ่งคำนวณ cosine distance ระหว่าง query vector กับรายการ embedding และคืนค่าระยะทางที่น้อยที่สุด n ค่าพร้อม index ของแต่ละค่า
ในแบบฝึกหัดถัดไป จะได้นำฟังก์ชันนี้ไปใช้กับแอปพลิเคชันค้นหาสินค้าเชิงความหมาย
distance ได้นำเข้ามาจาก scipy.spatial แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้าง Embeddings ด้วย OpenAI API
คำแนะนำการฝึกหัด
- คำนวณ cosine distance ระหว่าง
query_vectorกับembedding - เพิ่มดิกชันนารีที่มี
distและindexเข้าไปในลิสต์distances - เรียงลำดับลิสต์
distancesตาม key'distance'ของแต่ละดิกชันนารี - คืนค่า
nรายการแรกในdistances_sorted
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def find_n_closest(query_vector, embeddings, n=3):
distances = []
for index, embedding in enumerate(embeddings):
# Calculate the cosine distance between the query vector and embedding
dist = ____
# Append the distance and index to distances
distances.append({"distance": ____, "index": ____})
# Sort distances by the distance key
distances_sorted = ____
# Return the first n elements in distances_sorted
return ____