Word2Vec
ในแบบฝึกหัดนี้ จะได้สร้างโมเดล Word2Vec โดยใช้ Keras
คอร์ปัสที่ใช้ในการ pre-train โมเดลคือบทพูดจากทุกตอนของซีรีส์ The Big Bang Theory โดยแบ่งเป็นประโยค ซึ่งเก็บไว้ในตัวแปร bigbang
ข้อความในคอร์ปัสถูกแปลงเป็นตัวพิมพ์เล็กทั้งหมด และทุกคำถูก tokenize แล้ว ผลลัพธ์เก็บไว้ในตัวแปร tokenized_corpus
โมเดล Word2Vec ถูก pre-train ด้วย window size 10 คำสำหรับบริบท (5 คำก่อนและ 5 คำหลังคำกลาง) คำที่ปรากฏน้อยกว่า 3 ครั้งจะถูกตัดออก และใช้วิธี skip gram model ที่มี 50 มิติ โมเดลถูกบันทึกไว้ในไฟล์ bigbang_word2vec.model
คลาส Word2Vec โหลดไว้ในสภาพแวดล้อมแล้วจาก gensim.models.word2vec
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras
คำแนะนำการฝึกหัด
- โหลดโมเดล Word2Vec ที่ผ่านการ pre-train มาแล้ว
- สร้าง
listที่มีคำว่า"bazinga", "penny", "universe", "spock", "brain"เก็บไว้ในตัวแปรwords_of_interestตามลำดับนั้น - วนซ้ำผ่านแต่ละคำใน words of interest โดยใช้เมธอด
.most_similar()บน attributewvแล้ว append คำที่คล้ายกันที่สุด 5 อันดับแรกลงในtop5_similar_wordsในรูปแบบ dictionary - Print คำ 5 อันดับแรกที่พบสำหรับแต่ละคำใน words of interest
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Word2Vec model
w2v_model = Word2Vec.load(____)
# Selected words to check similarities
words_of_interest = ____
# Compute top 5 similar words for each of the words of interest
top5_similar_words = []
for word in words_of_interest:
top5_similar_words.append(
{word: [item[0] for item in w2v_model.wv.____([word], topn=5)]}
)
# Print the similar words
____