Learn AI with Python · บทเรียน

ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค

Sentence-BERT ความคล้ายคลึงโคไซน์สำหรับการค้นหาเชิงความหมาย และการจัดกลุ่มเวกเตอร์ฝัง

บทเรียน 4 จาก 413 ขั้นตอน

ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

ประโยค ไม่ใช่แค่คำ

การฝังคำใช้แทนคำ แต่บ่อยครั้งเราจำเป็นต้องเปรียบเทียบประโยคหรือเอกสารทั้งชุด การหาค่าเฉลี่ยของเวกเตอร์คำทำให้รายละเอียดบางส่วนหายไป เราจึงต้องการเวกเตอร์เดียวที่เก็บความหมายทั้งหมดไว้

การฝังประโยคคืออะไร

การฝังประโยคจะแปลงประโยคทั้งประโยคให้เป็นเวกเตอร์หนาแน่นหนึ่งตัว เพื่อให้ประโยคที่มีความหมายคล้ายกันมีเวกเตอร์อยู่ใกล้กัน ซึ่งช่วยให้สามารถค้นหาเชิงความหมายและจัดกลุ่มได้

ไลบรารี sentence-transformers

ไลบรารี sentence-transformers ช่วยให้เรื่องนี้ทำได้ง่าย ไลบรารีนี้ห่อหุ้มโมเดลทรานส์ฟอร์เมอร์ที่ปรับจูนมาแล้ว ซึ่งสร้างเวกเตอร์ประโยคคุณภาพสูงได้โดยตรง

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("all-MiniLM-L6-v2")

เหตุใดจึงใช้ all-MiniLM-L6-v2

all-MiniLM-L6-v2 เป็นค่าเริ่มต้นที่ได้รับความนิยม เนื่องจากมีขนาดเล็ก ทำงานรวดเร็ว และแม่นยำ โดยสร้างเวกเตอร์ขนาด 384 มิติ โมเดลนี้สร้างสมดุลระหว่างความเร็วและคุณภาพได้ดีสำหรับการใช้งานส่วนใหญ่

การเข้ารหัสประโยค

model.encode แปลงรายการประโยคให้เป็นเมทริกซ์ของการฝัง โดยมีหนึ่งแถวต่อหนึ่งประโยค

sentences = [
    "The cat sits on the mat.",
    "A feline rests on the rug.",
    "I am learning machine learning.",
]
embeddings = model.encode(sentences)
print(embeddings.shape)   # (3, 384)

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

ความคล้ายคลึงโคไซน์วัดมุมระหว่างเวกเตอร์สองตัวโดยไม่สนใจขนาด ค่าใกล้ 1 หมายถึงมีความหมายคล้ายกันมาก ส่วนค่าใกล้ 0 หมายถึงไม่เกี่ยวข้องกัน

from sentence_transformers import util

sim = util.cos_sim(embeddings[0], embeddings[1])
print(sim.item())   # high, both about a cat resting

การใช้ sklearn cosine_similarity

คุณยังสามารถใช้ scikit-learn กับเมทริกซ์การฝังได้โดยตรง เพื่อสร้างเมทริกซ์ความคล้ายคลึงแบบจับคู่ครบทุกคู่

from sklearn.metrics.pairwise import cosine_similarity

matrix = cosine_similarity(embeddings)
print(matrix)   # (3, 3) pairwise similarities

แนวคิดการค้นหาเชิงความหมาย

การค้นหาเชิงความหมายค้นหาเอกสารจากความหมาย ไม่ใช่จากคำสำคัญ ให้เข้ารหัสคำค้นหาและเอกสารทั้งหมด จากนั้นจัดอันดับเอกสารตามความคล้ายคลึงโคไซน์กับเวกเตอร์ของคำค้นหา

ตัวอย่างการค้นหาเชิงความหมาย

เข้ารหัสคลังข้อมูลเพียงครั้งเดียว จากนั้นสำหรับคำค้นหาแต่ละรายการ ให้คำนวณความคล้ายคลึงและส่งคืนผลลัพธ์ที่ตรงกันมากที่สุด

from sentence_transformers import util

corpus = ["How to reset my password", "Refund policy details", "Track my order"]
corpus_emb = model.encode(corpus)

query_emb = model.encode("I forgot my login")
hits = util.semantic_search(query_emb, corpus_emb, top_k=2)
print(hits)

การประยุกต์ใช้ในโลกจริง

การฝังประโยคช่วยขับเคลื่อนการจับคู่ FAQ การตรวจจับข้อมูลซ้ำ การจัดกลุ่ม การแนะนำ และขั้นตอนการดึงข้อมูลในระบบ RAG ซึ่งป้อนบริบทที่เกี่ยวข้องให้โมเดลภาษาขนาดใหญ่

เคล็ดลับเพื่อผลลัพธ์ที่ดี

เลือกโมเดลที่ฝึกมาสำหรับงานของคุณโดยเฉพาะ เช่น การค้นหาเชิงความหมายหรือการถอดความ ทำให้การฝังเป็นมาตรฐานหากเมตริกความคล้ายคลึงของคุณต้องใช้ และสำหรับคลังข้อมูลขนาดใหญ่ ให้ใช้ฐานข้อมูลเวกเตอร์เพื่อค้นหาเพื่อนบ้านที่ใกล้ที่สุดอย่างรวดเร็ว

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับการฝังประโยคของคุณ

สรุป

สรุป: การฝังประโยคเข้ารหัสประโยคทั้งประโยคเป็นเวกเตอร์ ใช้ SentenceTransformer("all-MiniLM-L6-v2") และ model.encode(sentences) จากนั้นเปรียบเทียบด้วยความคล้ายคลึงโคไซน์ วิธีนี้ช่วยขับเคลื่อนการค้นหาเชิงความหมาย โดยเข้ารหัสคำค้นหาและคลังข้อมูลแล้วจัดอันดับตามความคล้ายคลึง อีกทั้งยังสำคัญต่อการจับคู่ FAQ การจัดกลุ่ม และการดึงข้อมูลด้วย RAG

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
53
บทเรียน
225

คำถามที่พบบ่อย

บทเรียน “ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค”

Sentence-BERT ความคล้ายคลึงโคไซน์สำหรับการค้นหาเชิงความหมาย และการจัดกลุ่มเวกเตอร์ฝัง คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Word2Vec: Skip-gram และ CBOW
  2. เวกเตอร์ฝัง GloVe และ FastText
  3. การจำแนกข้อความด้วย BERT
  4. ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค
← กลับไปที่ Learn AI with Python