ส่วนที่ 1: ตามล่าสมบัติ
คุณเพิ่งได้รับรางวัลเป็นทริปออกเดินทางแบบไม่เสียค่าใช้จ่ายสู่เกาะเขตร้อนอันแสนอุดมสมบูรณ์ ระหว่างที่เดินสำรวจอยู่นั้น คุณพบแผนที่สมบัติโบราณที่บอกทางไปยังสมบัติล้ำค่า โดยมีข้อความลับหลายชุดที่เขียนด้วย 1 และ 0 พอเรียนคอร์สนี้มาแล้ว คุณก็รู้ทันทีว่านั่นคือลำดับของเวกเตอร์ที่เข้ารหัสแบบ onehot และคุณยังโชคดีพอที่จะพบ mapping ระหว่างคำกับ index เพื่อระบุได้ว่าคำไหนตรงกับ ID ใด
ตอนนี้ต้องถอดรหัสข้อความลับและหาคำตอบว่าแผนที่บอกอะไรไว้ คุณได้รับ treasure_map ซึ่งเป็นเมทริกซ์ขนาด จำนวนประโยค คูณ จำนวนคำ คูณ ความยาวเวกเตอร์ onehot พร้อมกับ Python dictionary ชื่อ index2word ที่ใช้แมป ID กับคำ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Translation ด้วย Keras
คำแนะนำการฝึกหัด
- ดึง word ID จากเวกเตอร์ที่เข้ารหัสแบบ onehot ใน
treasure_map(มิติของเวกเตอร์ onehot อยู่ที่มิติ สุดท้าย) - ดึงความยาวของลำดับ (จำนวน time step) จาก
treasure_mapแล้วกำหนดให้กับseq_len - ดึง word ID ในประโยคที่
iณ ตำแหน่งที่t - เพิ่ม คำ ชนิด
String(ไม่ใช่ word ID) ที่ตรงกับwidลงในลิสต์words
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Get the word IDs from the treasure map
word_ids = ____.____(____, axis=____)
# Get the sequence length from the treasure map
seq_len = treasure_map.shape[____]
for i in range(treasure_map.shape[0]):
words = []
for t in range(seq_len):
# Get the word ID for the i-th sentence and t-th position
wid = word_ids[i, ____]
if wid != 0:
# Append the word corresponding to wid
words.append(____[____])
print("Instruction ", i+1, ": ", ' '.join(words))