การพยากรณ์ข้อความด้วย LSTM
ในแบบฝึกหัดต่อไปนี้ คุณจะสร้างโมเดล LSTM เล็ก ๆ ที่สามารถพยากรณ์คำถัดไปได้ โดยใช้ชุดข้อมูลข้อความขนาดเล็ก
ชุดข้อมูลนี้ประกอบด้วยคำพูดที่ผ่านการทำความสะอาดแล้วจากภาพยนตร์ The Lord of the Ring ซึ่งเก็บอยู่ในตัวแปร text
คุณจะแปลง text นี้ให้เป็น sequences ที่มีความยาว 4 และใช้ Tokenizer ของ Keras ในการเตรียม features และ labels สำหรับโมเดล
Tokenizer ของ Keras ถูก import ไว้ให้แล้ว โดยมันจะกำหนดตัวเลขเฉพาะให้กับแต่ละคำที่ไม่ซ้ำกัน และเก็บการแมปไว้ใน dictionary ซึ่งสำคัญมากเพราะโมเดลทำงานกับตัวเลข แต่เราจะต้องถอดรหัสตัวเลขที่ได้กลับเป็นคำในภายหลัง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย Keras
คำแนะนำการฝึกหัด
- แบ่งข้อความออกเป็น array ของคำโดยใช้
.split() - สร้างประโยคที่มี 4 คำต่อประโยค โดยเลื่อนทีละ 1 คำในแต่ละครั้ง
- สร้าง
Tokenizer()จากนั้น fit กับประโยคโดยใช้.fit_on_texts() - แปลง
sentencesให้เป็น sequence ของตัวเลขโดยเรียก.texts_to_sequences()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Split text into an array of words
words = ____.____
# Make sentences of 4 words each, moving one word at a time
sentences = []
for i in range(4, len(words)):
sentences.append(' '.join(words[i-____:i]))
# Instantiate a Tokenizer, then fit it on the sentences
tokenizer = ____
tokenizer.____(____)
# Turn sentences into a sequence of numbers
sequences = tokenizer.____(____)
print("Sentences: \n {} \n Sequences: \n {}".format(sentences[:5],sequences[:5]))