การเตรียมข้อความอินพุต
จากวิดีโอ คุณได้เห็นวิธีเตรียมข้อความอินพุตและเอาต์พุตแล้ว แบบฝึกหัดนี้จะแสดงแนวปฏิบัติที่นิยมใช้กัน นั่นคือการใช้ความยาวสูงสุดของประโยคเพื่อ pad ทุกประโยค วิธีนี้ช่วยให้ไม่สูญเสียข้อมูลใด ๆ
เนื่องจากโมเดล RNN ต้องการอินพุตที่มีขนาดเท่ากัน การ pad ทุกประโยคจึงเป็นวิธีที่ดี โดยเติมศูนย์ให้กับประโยคที่สั้นกว่า โดยไม่ตัดประโยคที่ยาวกว่าออก
นอกจากนี้ จะใช้คำแทนตัวอักษรในการแทนค่า token ซึ่งเป็นแนวทางที่นิยมสำหรับโมเดล NMT
ข้อความภาษาโปรตุเกสถูกโหลดไว้ในตัวแปร pt_sentences และ tokenizer ที่ฝึกแล้วอยู่ในตัวแปร input_tokenizer
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras
คำแนะนำการฝึกหัด
- ใช้เมธอด
.split()กับแต่ละประโยคเพื่อแยกด้วยช่องว่างและนับจำนวนคำในประโยค - ใช้เมธอด
.texts_to_sequences()เพื่อแปลงข้อความให้เป็นลำดับของดัชนี - ใช้ความยาวสูงสุดของประโยคที่ได้มาเพื่อ pad ประโยคเหล่านั้น
- แสดงผลประโยคแรกที่แปลงแล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Get maximum length of the sentences
pt_length = max([len(sentence.____) for sentence in pt_sentences])
# Transform text to sequence of numerical indexes
X = input_tokenizer.____(pt_sentences)
# Pad the sequences
X = pad_sequences(X, maxlen=____, padding='post')
# Print first sentence
print(pt_sentences[0])
# Print transformed sentence
print(____)