ทำนายอักขระถัดไป
ในแบบฝึกหัดนี้ จะได้เขียนโค้ดฟังก์ชันสำหรับทำนายอักขระถัดไปจากโมเดลที่ฝึกไว้แล้ว โดยใช้อักขระ 20 ตัวที่ผ่านมาเพื่อทำนายอักขระตัวถัดไป และจะได้เรียนรู้วิธีฝึกโมเดลในบทเรียนถัดไป เนื่องจากขั้นตอนนี้เป็นส่วนสำคัญก่อนการฝึกโมเดล
นี่คือขั้นตอนแรกในการสร้างกฎสำหรับสร้างประโยค ย่อหน้า ข้อความสั้น หรือบล็อกข้อความอื่น ๆ ตามที่ต้องการ
ตัวแปร n_vocab, chars_window และดิกชันนารี index_to_char ถูกโหลดไว้ในสภาพแวดล้อมแล้ว นอกจากนี้ ฟังก์ชันด้านล่างได้ถูกสร้างไว้ให้แล้ว:
initialize_X(): แปลงข้อความอินพุตให้เป็นลำดับของตัวเลขดัชนีที่มีรูปร่างถูกต้องpredict_next_char(): ดึงอักขระถัดไปโดยใช้เมธอด.predict()ของคลาสโมเดลและดิกชันนารีindex_to_char
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras
คำแนะนำการฝึกหัด
- กำหนดฟังก์ชัน
get_next_char()และเพิ่มพารามิเตอร์initial_textและchars_windowโดยไม่ต้องกำหนดค่าเริ่มต้น - ใช้ฟังก์ชัน
initialize_X()และส่งตัวแปรchar_to_indexเพื่อสร้างเวกเตอร์ศูนย์สำหรับใช้ในการทำนาย - ใช้ฟังก์ชัน
predict_next_char()เพื่อรับผลการทำนาย และเก็บไว้ในตัวแปรnext_char - แสดงผลอักขระที่ทำนายได้ด้วยการเรียกฟังก์ชันที่กำหนดไว้บน
initial_textที่ให้มา
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def ____(model, ____, ____, char_to_index, index_to_char):
# Initialize the X vector with zeros
X = ____(initial_text, chars_window, ____)
# Get next character using the model
____ = predict_next_char(model, X, ____)
return next_char
# Define context sentence and print the generated text
initial_text = "I am not insane, "
print("Next character: {0}".format(____(model, ____, 20, char_to_index, index_to_char)))