LoslegenKostenlos loslegen

Sätze auffüllen

Jetzt implementierst du eine Funktion namens „ sents2seqs() “, die du später verwenden wirst, um Daten bequem in das vom neuronalen maschinellen Übersetzungsmodell (NMT) akzeptierte Format zu konvertieren. „ sents2seqs() “ akzeptiert eine Liste von Satzzeichenfolgen und

  • Konvertiert die Sätze in eine Liste von IDs,
  • Füll die Sätze auf, damit sie alle gleich lang sind, und
  • Optional kannst du die IDs in Onehot-Vektoren umwandeln.

Du hast „ en_tok “ bekommen, ein „ Tokenizer “, das schon mit Daten trainiert wurde. Außerdem solltest du beachten, dass du bei der Implementierung der Funktion „ sents2seqs() “ ein ungenutztes Argument namens „ input_type “ siehst. Später wird dieses „ input_type ” benutzt, um sprachabhängige Parameter wie die Länge der Sequenz und die Größe des Vokabulars zu ändern.

Diese Übung ist Teil des Kurses

Maschinelle Übersetzung mit Keras

Kurs anzeigen

Anleitung zur Übung

  • Konvertier die „ sentences ” mit dem Tokenizer „ en_tok ” in Sequenzen.
  • Füge die Pad-Sequenzen zu einer festen Länge „ en_len “ mit dem angegebenen Auffülltyp „ pad_type “ zusammen und verwende „ post-truncating“.
  • Konvertier die Wort-IDs aus „ preproc_text “ mit der Funktion „ to_categorical() “ in One-Hot-Vektoren der Länge „ en_vocab “.
  • Konvertier „ sentence “ mit der Methode „ sents2seqs() “ und „ pre-padding“ in eine aufgefüllte Sequenz.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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 bearbeiten und ausführen