เวกเตอร์ฝัง GloVe และ FastText
สถิติการปรากฏร่วมทั่วทั้งคลังข้อมูล การใช้หน่วยคำย่อยด้วย FastText และการโหลดเวกเตอร์ฝังที่ฝึกไว้ล่วงหน้า
เวกเตอร์ฝัง GloVe และ FastText เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
ก้าวไปไกลกว่า Word2Vec
Word2Vec เรียนรู้จากหน้าต่างบริบทเฉพาะที่ การฝังคำที่มีอิทธิพลอีกสองรูปแบบใช้แนวทางแตกต่างกัน: GloVe ใช้สถิติระดับทั้งคลังข้อความ ส่วน FastText ใช้ส่วนย่อยของอักขระ
GloVe คืออะไร
GloVe (เวกเตอร์ระดับทั้งคลังข้อความ) ฝึกจาก เมทริกซ์การปรากฏร่วมระดับทั้งคลังข้อความ ซึ่งบอกว่าคำแต่ละคู่ปรากฏร่วมกันบ่อยเพียงใดทั่วทั้งคลัง ไม่ใช่เฉพาะในหน้าต่างบริบทเฉพาะที่
เหตุใดสถิติระดับทั้งคลังจึงมีประโยชน์
ด้วยการแยกตัวประกอบเมทริกซ์การปรากฏร่วมทั้งหมด GloVe จึงจับความสัมพันธ์และอัตราส่วนระหว่างคำทั่วทั้งคลังข้อความได้ และมักสร้างเวกเตอร์คุณภาพสูงที่ทำงานได้ทัดเทียมหรือดีกว่า Word2Vec ในงานความสัมพันธ์เชิงเปรียบเทียบ
การโหลดเวกเตอร์ที่ฝึกไว้ล่วงหน้า
การฝึกการฝังคำต้องใช้คลังข้อความขนาดใหญ่มาก เราจึงมักดาวน์โหลดเวกเตอร์ที่ฝึกไว้ล่วงหน้า gensim.downloader จะดาวน์โหลดโมเดลยอดนิยม เช่น เวกเตอร์ GloVe ได้ด้วยโค้ดเพียงบรรทัดเดียว
import gensim.downloader as api
glove = api.load("glove-wiki-gigaword-100")
print(glove["computer"].shape) # (100,)การใช้ GloVe ที่ฝึกไว้ล่วงหน้า
เมื่อโหลดแล้ว เวกเตอร์ GloVe จะรองรับการดำเนินการแบบเดียวกับ Word2Vec ได้แก่ การวัดความคล้ายกันและความสัมพันธ์เชิงเปรียบเทียบ
import gensim.downloader as api
glove = api.load("glove-wiki-gigaword-100")
print(glove.most_similar("king", topn=3))
print(glove.most_similar(positive=["king", "woman"], negative=["man"], topn=1))ปัญหาคำที่อยู่นอกคลังคำศัพท์
Word2Vec และ GloVe จะกำหนดเวกเตอร์ให้เฉพาะคำที่พบระหว่างการฝึกเท่านั้น คำใหม่หรือคำที่สะกดผิด (คำที่อยู่นอกคลังคำศัพท์, OOV) จะไม่มีเวกเตอร์ ซึ่งเป็นข้อจำกัดที่สำคัญสำหรับข้อความที่ไม่เป็นระเบียบ
FastText คืออะไร
FastText แก้ปัญหา OOV ด้วยการแทนแต่ละคำเป็นกลุ่มของ n-แกรมของอักขระ คำว่า "playing" ประกอบด้วยส่วนย่อยอย่าง "pla", "lay" และ "ing" จึงมีโครงสร้างร่วมกับคำที่เกี่ยวข้อง
n-แกรมของอักขระช่วยได้อย่างไร
เนื่องจากเวกเตอร์คำสร้างขึ้นจากส่วนย่อยของคำ FastText จึงสามารถสร้างเวกเตอร์สำหรับ คำที่ไม่เคยพบ ได้จาก n-แกรมของคำนั้น นอกจากนี้ยังจับโครงสร้างทางรูปคำได้ ทำให้จัดการคำนำหน้า คำต่อท้าย และคำที่พบได้น้อยได้ดีขึ้น
การฝึก FastText
gensim มี FastText พร้อมส่วนติดต่อโปรแกรมประยุกต์ที่คล้ายกับ Word2Vec พารามิเตอร์ min_n และ max_n ใช้กำหนดช่วงของ n-แกรมอักขระ
from gensim.models import FastText
model = FastText(
sentences,
vector_size=100,
window=5,
min_count=1,
min_n=3,
max_n=6,
)FastText จัดการ OOV ได้
แม้แต่คำที่ไม่เคยพบในการฝึกก็ยังส่งคืนเวกเตอร์ได้ โดยประกอบขึ้นจาก n-แกรมของอักขระ นี่คือจุดเด่นของ FastText เหนือ Word2Vec และ GloVe
from gensim.models import FastText
model = FastText(sentences, vector_size=100, min_n=3, max_n=6, min_count=1)
# works even if "catlike" was never in training
vec = model.wv["catlike"]การเลือกการฝังคำ
ใช้ GloVe หรือ Word2Vec สำหรับข้อความสะอาดที่มีคลังคำศัพท์ตายตัว เลือก FastText สำหรับภาษาที่มีโครงสร้างทางรูปคำซับซ้อน ข้อความที่มีสัญญาณรบกวน หรือกรณีที่พบคำ OOV บ่อย เวกเตอร์ที่ฝึกไว้ล่วงหน้าเป็นจุดเริ่มต้นที่ดีในทุกกรณี
ตรวจสอบความเข้าใจ
ทดสอบความรู้เกี่ยวกับการฝังคำของคุณ
สรุป
สรุป: GloVe เรียนรู้จากสถิติการปรากฏร่วมระดับทั้งคลังข้อความ ส่วน FastText ใช้ n-แกรมของอักขระเพื่อจัดการคำที่อยู่นอกคลังคำศัพท์และโครงสร้างทางรูปคำ โหลดเวกเตอร์ที่ฝึกไว้ล่วงหน้าด้วย gensim.downloader.load ทั้งสองรูปแบบรองรับการวัดความคล้ายกันและความสัมพันธ์เชิงเปรียบเทียบ เลือก FastText สำหรับข้อความที่มีสัญญาณรบกวนหรือมีโครงสร้างทางรูปคำซับซ้อน และเลือก GloVe/Word2Vec สำหรับคลังคำศัพท์ตายตัวที่สะอาด
คำถามที่พบบ่อย
บทเรียน “เวกเตอร์ฝัง GloVe และ FastText” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เวกเตอร์ฝัง GloVe และ FastText” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เวกเตอร์ฝัง GloVe และ FastText”
สถิติการปรากฏร่วมทั่วทั้งคลังข้อมูล การใช้หน่วยคำย่อยด้วย FastText และการโหลดเวกเตอร์ฝังที่ฝึกไว้ล่วงหน้า คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “เวกเตอร์ฝัง GloVe และ FastText” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Word2Vec: Skip-gram และ CBOW
- เวกเตอร์ฝัง GloVe และ FastText
- การจำแนกข้อความด้วย BERT
- ความคล้ายคลึงเชิงความหมายและเวกเตอร์ฝังประโยค