ÎncepețiÎncepe gratuit

Completarea cu padding a propozițiilor

Vei implementa acum o funcție numită sents2seqs(), pe care o vei folosi ulterior pentru a transforma datele în formatul acceptat de modelul de traducere automată neuronală (NMT). sents2seqs() primește o listă de propoziții sub formă de șiruri de caractere și:

  • Convertește propozițiile într-o listă de secvențe de ID-uri,
  • Aplică padding propozițiilor pentru ca acestea să aibă lungime egală și,
  • Opțional, convertește ID-urile în vectori onehot.

Ți-a fost furnizat en_tok, un Tokenizer deja antrenat pe date. Un alt lucru de reținut este că, la implementarea funcției sents2seqs(), vei observa un argument neutilizat numit input_type. Ulterior, acest input_type va fi folosit pentru a modifica parametri dependenți de limbă, cum ar fi lungimea secvenței și dimensiunea vocabularului.

Acest exercițiu face parte din cursul

Traducere automată cu Keras

Vezi cursul

Instrucțiuni pentru exercițiu

  • Convertește sentences în secvențe folosind Tokenizer-ul en_tok.
  • Aplică padding secvențelor până la o lungime fixă en_len, cu un tip de padding specificat prin pad_type, și folosește trunchiere de tip post.
  • Convertește ID-urile de cuvinte din preproc_text în vectori onehot de lungime en_vocab folosind funcția to_categorical().
  • Convertește sentence într-o secvență cu padding folosind metoda sents2seqs() cu padding de tip pre.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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=____)
Editează și rulează codul