สร้างประโยคโดยใช้บริบท
ในแบบฝึกหัดนี้ จะได้ทดลองใช้โมเดลที่ผ่านการเทรนมาแล้วสำหรับการสร้างข้อความ โมเดลถูกโหลดไว้ในตัวแปร model พร้อมกับฟังก์ชัน initialize_params() และ get_next_token()
ฟังก์ชัน get_next_token() ใช้โมเดลที่เทรนมาแล้วเพื่อทำนายอักขระถัดไป และคืนค่าตัวแปร 3 ตัว ได้แก่ อักขระถัดไป next_char ประโยคที่อัปเดตแล้ว res และข้อความที่เลื่อนตำแหน่งแล้ว seq ซึ่งจะนำไปใช้ทำนายอักขระต่อไป
จะได้กำหนดฟังก์ชันที่รับโมเดลที่เทรนมาแล้วและสตริงที่เป็นจุดเริ่มต้นของประโยคที่จะสร้างเป็น input การสร้างข้อความโดยมีบริบทเริ่มต้นแบบนี้ถือเป็นแนวปฏิบัติที่ดี ทั้งนี้ ขีดจำกัด 100 อักขระเป็นเพียงตัวอย่างเท่านั้น สามารถกำหนดขีดจำกัดอื่นหรือไม่กำหนดขีดจำกัดเลยก็ได้ตามความเหมาะสมของแอปพลิเคชัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras
คำแนะนำการฝึกหัด
- ส่งตัวแปร
initial_textไปยังฟังก์ชันinitialize_params() - กำหนดเงื่อนไขเพื่อหยุด loop เมื่อตัวนับถึง 100 หรือพบจุด (
r'.') - ส่งค่าเริ่มต้น
resและseqไปยังฟังก์ชันget_next_token()เพื่อรับอักขระถัดไป - แสดงผลประโยคตัวอย่างที่ฟังก์ชันที่กำหนดไว้สร้างขึ้น
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def generate_phrase(model, initial_text):
# Initialize variables
res, seq, counter, next_char = initialize_params(____)
# Loop until stop conditions are met
while counter < ____ ____ next_char != r'.':
# Get next char using the model and append to the sentence
next_char, res, seq = get_next_token(model, ____, ____)
# Update the counter
counter = counter + 1
return res
# Create a phrase
print(____(model, "I am not insane, "))