เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเตรียมข้อมูลข้อความสำหรับอินพุตของโมเดล

ในบทที่ผ่านมา คุณได้เรียนรู้วิธีสร้าง dictionary สำหรับแปลงระหว่างดัชนีและคำ ในแบบฝึกหัดนี้ คุณจะแบ่งข้อความออกเป็นตัวอักษรและเตรียมข้อมูลสำหรับการเรียนรู้แบบ supervised learning ต่อไป

การแบ่งข้อความเป็นตัวอักษรอาจดูแปลก แต่เป็นวิธีที่นิยมใช้ในการสร้างข้อความ (text generation) นอกจากนี้ กระบวนการเตรียมข้อมูลยังคงเหมือนเดิม เปลี่ยนแค่วิธีการแบ่งข้อความเท่านั้น

คุณจะสร้างข้อมูลสำหรับการฝึกโมเดล ซึ่งประกอบด้วยลิสต์ของข้อความที่มีความยาวคงที่และป้ายกำกับ (label) ที่เป็นตัวอักษรถัดไปของแต่ละข้อความ

ชุดข้อมูลที่ใช้ประกอบด้วยคำพูดของ Sheldon จากซีรีส์ The Big Bang Theory ซึ่งเก็บอยู่ในตัวแปร sheldon_quotes

ฟังก์ชัน print_examples() จะแสดงคู่ข้อมูลเพื่อให้เห็นว่าข้อมูลถูกแปลงอย่างไร ใช้ help() เพื่อดูรายละเอียดเพิ่มเติม

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดให้ step มีค่าเท่ากับ 2 และ chars_window มีค่าเท่ากับ 10
  • เพิ่มประโยคถัดไปเข้าไปในตัวแปร sentences
  • เพิ่มตำแหน่งที่ถูกต้องของข้อความ sheldon เข้าไปในตัวแปร next_chars
  • ใช้ฟังก์ชัน print_examples() เพื่อแสดงประโยคและตัวอักษรถัดไปจำนวน 10 รายการ

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create lists to keep the sentences and the next character
sentences = []   # ~ Training data
next_chars = []  # ~ Training labels

# Define hyperparameters
step = ____          # ~ Step to take when reading the texts in characters
chars_window = ____ # ~ Number of characters to use to predict the next one  

# Loop over the text: length `chars_window` per time with step equal to `step`
for i in range(0, len(sheldon_quotes) - chars_window, step):
    sentences.____(sheldon_quotes[i:i + chars_window])
    next_chars.append(sheldon_quotes[____])

# Print 10 pairs
print_examples(____, ____, 10)
แก้ไขและรันโค้ด