ความคล้ายคลึงของข้อความ

การสร้าง Embeddings ด้วย OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

ทบทวน...

 

  • ข้อความที่มีความหมายใกล้เคียงกันจะถูก embed ใกล้กันมากขึ้น ใน vector space
  • การวัดระยะทางช่วยให้วัดความคล้ายคลึงได้
  • เปิดใช้งานแอปพลิเคชัน embeddings:
    • การค้นหาเชิงความหมาย
    • ระบบแนะนำ
    • การจำแนกประเภท

 

กราฟ vector space 2 มิติ แสดงให้เห็นว่ารีวิวที่มี sentiment และหัวข้อเดียวกันจะถูกจับกลุ่มไว้ใกล้กันใน vector space

การสร้าง Embeddings ด้วย OpenAI API

การวัดความคล้ายคลึง

 

Cosine distance

from scipy.spatial import distance

distance.cosine([0, 1], [1, 0])
1.0
  • มีค่าตั้งแต่ 0 ถึง 2
  • ค่ายิ่งน้อย = ความคล้ายคลึงยิ่งสูง

 

เวกเตอร์สองตัวที่มีเส้นตรงลากเชื่อมระหว่างกัน

การสร้าง Embeddings ด้วย OpenAI API

ตัวอย่าง: การเปรียบเทียบความคล้ายคลึงของหัวข่าว

รายการของ dictionary ที่บรรจุหัวข่าวและ embedding ของแต่ละรายการ

การสร้าง Embeddings ด้วย OpenAI API

ตัวอย่าง: การเปรียบเทียบความคล้ายคลึงของหัวข่าว

def create_embeddings(texts):
  response = client.embeddings.create(
    model="text-embedding-3-small",
    input=texts
  )
  response_dict = response.model_dump()

  return [data['embedding'] for data in response_dict['data']]
print(create_embeddings(["Python is the best!", "R is the best!"]))

print(create_embeddings("DataCamp is awesome!")[0])
[[0.0050565884448587894, ..., , -0.04000323638319969],
 [-0.0018890155479311943, ..., -0.04085670784115791]]

[0.00037010075175203383, ..., -0.021759100258350372]
การสร้าง Embeddings ด้วย OpenAI API

ตัวอย่าง: การเปรียบเทียบความคล้ายคลึงของหัวข่าว

from scipy.spatial import distance
import numpy as np

search_text = "computer"
search_embedding = create_embeddings(search_text)[0]
distances = []
for article in articles:
dist = distance.cosine(search_embedding, article["embedding"])
distances.append(dist)
min_dist_ind = np.argmin(distances)
print(articles[min_dist_ind]['headline'])
Tech Company Launches Innovative Product to Improve Online Accessibility
การสร้าง Embeddings ด้วย OpenAI API

มาฝึกกันเถอะ!

การสร้าง Embeddings ด้วย OpenAI API

Preparing Video For Download...