Kom igångKom igång gratis

Utfyllnad av meningar

Nu ska du implementera en funktion som heter sents2seqs(), som du senare kommer att använda för att omvandla data till det format som den neurala maskinöversättningsmodellen (NMT) kräver. sents2seqs() tar emot en lista med meningssträngar och:

  • Konverterar meningarna till en lista med sekvenser av ID:n,
  • Fyller ut meningarna så att de får samma längd, samt
  • Konverterar valfritt ID:n till one-hot-vektorer.

Du har tillgång till en_tok, en Tokenizer som redan tränats på data. Observera också att när du implementerar funktionen sents2seqs() kommer du att se ett oanvänt argument som heter input_type. Detta argument kommer senare att användas för att ändra språkberoende parametrar, till exempel sekvensens längd och vokabulärens storlek.

Den här övningen är en del av kursen

Maskinöversättning med Keras

Visa kurs

Övningsinstruktioner

  • Konvertera sentences till sekvenser med hjälp av en_tok Tokenizer.
  • Fyll ut sekvenserna till en fast längd en_len med den angivna utfyllnadstypen pad_type och använd post-trunkering.
  • Konvertera ord-ID:na i preproc_text till one-hot-vektorer av längden en_vocab med funktionen to_categorical().
  • Konvertera sentence till en utfylld sekvens med metoden sents2seqs() och pre-utfyllnad.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.utils import to_categorical

def sents2seqs(input_type, sentences, onehot=False, pad_type='post'):
	# Convert sentences to sequences      
    encoded_text = ____.____(sentences)
    # Pad sentences to en_len
    preproc_text = ____(____, padding=____, truncating=____, maxlen=____)
    if onehot:
		# Convert the word IDs to onehot vectors
        preproc_text = ____(____, num_classes=____)
    return preproc_text
sentence = 'she likes grapefruit , peaches , and lemons .'  
# Convert a sentence to sequence by pre-padding the sentence
pad_seq = sents2seqs('source', [____], pad_type=____)
Redigera och kör kod