開始使用免費開始

準備輸入文字

你已在影片中看到如何準備輸入與輸出文字。這個練習要示範一個常見做法:使用句子的最大長度來補齊(pad)所有句子,如此就不會遺失任何資訊。

由於 RNN 模型需要大小一致的輸入,這種作法會以最大長度為基準,對所有句子進行補齊,對較短的句子在後面補 0,而不截斷較長的句子。

另外,你將以單字而非字元作為符記(token),這是 NMT 模型常見的作法。

葡萄牙文句子已載入在變數 pt_sentences,已擬合好的 tokenizer 在變數 input_tokenizer

本練習屬於課程

使用 Keras 建立語言模型的循環神經網路(RNN)

檢視課程

練習說明

  • 對每個句子使用 .split() 方法以空白切分,取得該句的單字數。
  • 使用 .texts_to_sequences() 方法將文字轉換為索引序列。
  • 使用取得的句子最大長度來進行補齊(padding)。
  • 印出第一個轉換後的句子。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Get maximum length of the sentences
pt_length = max([len(sentence.____) for sentence in pt_sentences])

# Transform text to sequence of numerical indexes
X = input_tokenizer.____(pt_sentences)

# Pad the sequences
X = pad_sequences(X, maxlen=____, padding='post')

# Print first sentence
print(pt_sentences[0])

# Print transformed sentence
print(____)
編輯並執行程式碼