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

การสร้างคำแปลจากอังกฤษเป็นฝรั่งเศส

รู้หรือไม่ว่าธนาคาร HSBC เคยใช้เงินถึง 10 ล้านดอลลาร์เพื่อเปลี่ยนสโลแกนใหม่ เพียงเพราะความผิดพลาดในการแปลภาษา?

ในแบบฝึกหัดนี้ เราจะใช้โมเดลที่ฝึกไว้แล้วเพื่อทำนายคำแปลภาษาฝรั่งเศสของประโยคภาษาอังกฤษโดยใช้ model.predict() โมเดล (model) ที่ให้มานี้ถูกฝึกมาแล้ว 50 epoch บนประโยค 100,000 ประโยค และมีความแม่นยำประมาณ 90% บนชุดข้อมูล validation ที่มีคำมากกว่า 35,000 คำ แบบฝึกหัดนี้อาจใช้เวลาโหลดนานขึ้นเล็กน้อย เนื่องจากต้องโหลดโมเดลก่อนเริ่มต้น นอกจากนี้ยังมี dictionary (fr_id2word) ให้สำหรับแปลงดัชนีคำเป็นคำจริง และยังสามารถใช้ฟังก์ชัน sents2seqs ที่เขียนไว้ก่อนหน้านี้เพื่อเตรียมข้อมูลก่อนส่งเข้าโมเดล

สามารถใช้ help(sents2seqs) เพื่อทบทวนพารามิเตอร์ที่ฟังก์ชัน sents2seqs() รับได้

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

Machine Translation ด้วย Keras

ดูคอร์ส

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

  • เตรียมข้อมูล en_st โดยแปลงเป็น numpy array แบบ onehot encoding โดยใช้ฟังก์ชัน sents2seqs ที่กำหนดไว้ก่อนหน้านี้
  • ทำนายผลลัพธ์สำหรับ en_seq โดยใช้โมเดล model ที่ฝึกมาแล้ว
  • ดึงดัชนีที่มีค่าสูงสุดจากการทำนายแต่ละรายการใน fr_pred โดยใช้ np.argmax แล้วกำหนดให้กับ fr_seq
  • แปลง sequence ID ภาษาฝรั่งเศสเป็นประโยคโดยใช้ list comprehension (อย่าลืมละเว้นค่า 0) แล้วกำหนดให้กับ fr_sent

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

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

en_st = ['the united states is sometimes chilly during december , but it is sometimes freezing in june .']
print('English: {}'.format(en_st))

# Convert the English sentence to a sequence
en_seq = ____(____, en_st, ____=True, reverse=____)

# Predict probabilities of words using en_seq
fr_pred = ____.____(en_seq)

# Get the sequence indices (max argument) of fr_pred
fr_seq = ____.____(fr_pred, axis=____)[0]

# Convert the sequence of IDs to a sentence and print
fr_sent = [____[i] for i in ____ if i != ____]
print("French (Custom): {}".format(' '.join(fr_sent)))
print("French (Google Translate): les etats-unis sont parfois froids en décembre, mais parfois gelés en juin")
แก้ไขและรันโค้ด