Embeddings สำหรับงานจำแนกประเภท

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

Emmanuel Pire

Senior Software Engineer, DataCamp

งานจำแนกประเภท

 

การกำหนด ป้ายกำกับ ให้กับรายการ

  • การจัดหมวดหมู่
    • ตัวอย่าง: จำแนกพาดหัวข่าวตามหัวข้อ
  • การวิเคราะห์ความรู้สึก

 

ตารางแสดงหัวข้อที่ใช้จำแนกประเภทบทความ

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

งานจำแนกประเภท

 

การกำหนด ป้ายกำกับ ให้กับรายการ

  • การจัดหมวดหมู่
    • ตัวอย่าง: จำแนกพาดหัวข่าวตามหัวข้อ
  • การวิเคราะห์ความรู้สึก
    • ตัวอย่าง: จำแนกรีวิวว่าเป็นบวกหรือลบ

 

Embeddings จับความหมาย เชิงความหมาย ได้

 

ตารางแสดงหน้าอิ่มใจและหน้าเศร้า สำหรับจำแนกตามความรู้สึก

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

การจำแนกประเภทด้วย embeddings

  • Zero-shot classification:
    • ไม่ใช้ข้อมูลที่มีป้ายกำกับ

 

ขั้นตอน:

  1. สร้าง embedding ของคำอธิบายแต่ละคลาส

คำอธิบายคลาสที่แปลงเป็น embedding ในเวกเตอร์สเปซ

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

การจำแนกประเภทด้วย embeddings

  • Zero-shot classification:
    • ไม่ใช้ข้อมูลที่มีป้ายกำกับ

 

ขั้นตอน:

  1. สร้าง embedding ของคำอธิบายแต่ละคลาส
  2. สร้าง embedding ของรายการที่ต้องการจำแนก
  3. คำนวณ cosine distance

คำอธิบายคลาสใน vector space พร้อมแสดงเวกเตอร์ที่ยังไม่ทราบคลาส

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

การจำแนกประเภทด้วย embeddings

  • Zero-shot classification:
    • ไม่ใช้ข้อมูลที่มีป้ายกำกับ

 

ขั้นตอน:

  1. สร้าง embedding ของคำอธิบายแต่ละคลาส
  2. สร้าง embedding ของรายการที่ต้องการจำแนก
  3. คำนวณ cosine distance
  4. กำหนดป้ายกำกับที่คล้ายที่สุด

คำอธิบายคลาสใน vector space โดยเวกเตอร์ที่ไม่ทราบคลาสได้รับป้ายกำกับ Tech

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

สร้าง embedding ของคำอธิบายคลาส

topics = [
  {'label': 'Tech'},
  {'label': 'Science'},
  {'label': 'Sport'},
  {'label': 'Business'},
]

class_descriptions = [topic['label'] for topic in topics]
class_embeddings = create_embeddings(class_descriptions)
การสร้าง Embeddings ด้วย OpenAI API

สร้าง embedding ของรายการที่ต้องการจำแนก

article = {"headline": "How NVIDIA GPUs Could Decide Who Wins the AI Race",
           "keywords": ["ai", "business", "computers"]}

def create_article_text(article): return f"""Headline: {article['headline']} Keywords: {', '.join(article['keywords'])}""" article_text = create_article_text(article)
article_embeddings = create_embeddings(article_text)[0]
การสร้าง Embeddings ด้วย OpenAI API

คำนวณ cosine distance

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

closest = find_closest(article_embeddings, class_embeddings)
การสร้าง Embeddings ด้วย OpenAI API

ดึงป้ายกำกับที่คล้ายที่สุด

label = topics[closest['index']]['label']

print(label)
Business
article = {"headline": "How NVIDIA GPUs Could Decide Who Wins the AI Race",
           "keywords": ["ai", "business", "computers"]}

ข้อจำกัด:

  • คำอธิบายคลาสมีรายละเอียดไม่เพียงพอ
การสร้าง Embeddings ด้วย OpenAI API

คำอธิบายที่ละเอียดยิ่งขึ้น

topics = [
  {'label': 'Tech', 'description': 'A news article about technology'},
  {'label': 'Science', 'description': 'A news article about science'},
  {'label': 'Sport', 'description': 'A news article about sports'},
  {'label': 'Business', 'description': 'A news article about business'},
]

class_descriptions = [topic['description'] for topic in topics] class_embeddings = create_embeddings(class_descriptions)
[...] label = topics[closest['index']]['label'] print(label)
Tech
การสร้าง Embeddings ด้วย OpenAI API

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

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

Preparing Video For Download...