開始使用免費開始

產生英翻法譯文

你知道嗎,HSBC 曾因為翻譯失誤而在品牌重塑上多花了 1,000 萬美元?

我們將使用已訓練好的模型,透過 model.predict() 來預測英文句子的法文翻譯。你會拿到一個已訓練的模型(model)。此模型在 100,000 個句子上訓練了 50 個 epoch,並在超過 35,000 個單字的驗證集上達到約 90% 的準確率。由於在練習開始前需要載入已訓練模型,此題可能會花較長時間載入。此外,你也會拿到一個字典(fr_id2word),可用來將詞的索引轉回單字。最後,你會使用先前實作的 sents2seqs 函式,先將資料前處理後再餵給模型。

你可以使用 help(sents2seqs) 來回顧 sents2seqs() 函式可接受的輸入格式。

本練習屬於課程

使用 Keras 進行機器翻譯

檢視課程

練習說明

  • 前處理來源 en_st,使用先前定義的 sents2seqs 函式將其轉為 one-hot 編碼的 numpy 陣列。
  • 使用提供的已訓練 modelen_seq 進行預測。
  • 使用 np.argmaxfr_pred 每個預測上取最大索引,並指定給 fr_seq
  • 使用串列推導式將法文序列 ID 轉為句子(記得忽略 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")
編輯並執行程式碼