Aan de slagGa gratis aan de slag

Zinnen opvullen (padding)

Je gaat nu een functie implementeren genaamd sents2seqs() die je later gebruikt om data handig om te zetten naar het formaat dat het neural machine translation (NMT)-model accepteert. sents2seqs() accepteert een lijst met zinnen als strings en,

  • Zet de zinnen om naar een lijst met sequenties van ID’s,
  • Vult de zinnen op zodat ze even lang zijn en,
  • Zet de ID’s optioneel om naar onehot-vectoren.

Je hebt en_tok gekregen, een Tokenizer die al op data is getraind. Let er ook op dat je bij het implementeren van de functie sents2seqs() een ongebruikt argument ziet genaamd input_type. Later wordt input_type gebruikt om taalspecifieke parameters te veranderen, zoals de lengte van de sequentie en de grootte van de woordenschat.

Deze oefening maakt deel uit van de cursus

Machine Translation met Keras

Cursus bekijken

Oefeninstructies

  • Zet de sentences om naar sequenties met de en_tok Tokenizer.
  • Vul sequenties op tot een vaste lengte en_len met het opgegeven paddingtype pad_type en gebruik post-truncating.
  • Zet de preproc_text woord-ID’s om naar onehot-vectoren van lengte en_vocab met de functie to_categorical().
  • Zet sentence om naar een opgevulde sequentie met de methode sents2seqs() met pre-padding.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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=____)
Code bewerken en uitvoeren