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

เวกเตอร์ฝัง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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