การแบ่งข้อมูลสำหรับการฝึกและการตรวจสอบ
ในแบบฝึกหัดนี้จะสร้างชุดข้อมูลสำหรับการฝึก (training) และการตรวจสอบ (validation) การเก็บชุดข้อมูลตรวจสอบไว้และติดตามประสิทธิภาพของโมเดลบนชุดข้อมูลนั้นเป็นแนวปฏิบัติที่ดีเพื่อป้องกัน overfitting
สำหรับแบบฝึกหัดนี้ได้รับ en_text (ประโยคภาษาอังกฤษ) และ fr_text (ประโยคภาษาฝรั่งเศส) ไว้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Translation ด้วย Keras
คำแนะนำการฝึกหัด
- กำหนดลำดับดัชนีโดยใช้
np.arange()ให้เริ่มจาก 0 และมีขนาดเท่ากับen_text - กำหนด
train_indsเป็นดัชนีชุดแรกจำนวนtrain_sizeตัวจากลำดับดัชนีที่สร้างขึ้น - กำหนด
tr_enและtf_frซึ่งเก็บประโยคที่ตรงกับดัชนีในtrain_indsจากลิสต์en_textและfr_text - กำหนด
v_enและv_frซึ่งเก็บประโยคที่ตรงกับดัชนีในvalid_indsจากลิสต์en_textและfr_text
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
train_size, valid_size = 800, 200
# Define a sequence of indices from 0 to size of en_text
inds = np.____(len(____))
np.random.shuffle(inds)
# Define train_inds as first train_size indices
train_inds = inds[:____]
valid_inds = inds[train_size:train_size+valid_size]
# Define tr_en (train EN sentences) and tr_fr (train FR sentences)
tr_en = [en_text[ti] for ti in ____]
tr_fr = [____[____] for ti in ____]
# Define v_en (valid EN sentences) and v_fr (valid FR sentences)
v_en = [en_text[____] for vi in ____]
v_fr = [____[____] for vi in ____]
print('Training (EN):\n', tr_en[:3], '\nTraining (FR):\n', tr_fr[:3])
print('\nValid (EN):\n', v_en[:3], '\nValid (FR):\n', v_fr[:3])