ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค
Sentence-BERT ความคล้ายคลึงโคไซน์สำหรับการค้นหาเชิงความหมาย และการจัดกลุ่มเวกเตอร์ฝัง
ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Word2Vec: Skip-gram และ CBOW
- เวกเตอร์ฝัง GloVe และ FastText
- การจำแนกข้อความด้วย BERT
- ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค