Zacznij terazZacznij za darmo

Dopełnianie zdań

Teraz zaimplementujesz funkcję o nazwie sents2seqs(), którą później wykorzystasz do wygodnego przekształcania danych do formatu akceptowanego przez model neuronowego tłumaczenia maszynowego (NMT). Funkcja sents2seqs() przyjmuje listę zdań w postaci ciągów znaków i:

  • konwertuje zdania na listy sekwencji identyfikatorów,
  • dopełnia zdania tak, aby miały równą długość,
  • opcjonalnie zamienia identyfikatory na wektory kodowania one-hot.

Do dyspozycji masz en_tok – obiekt klasy Tokenizer już wytrenowany na danych. Zwróć też uwagę, że podczas implementacji funkcji sents2seqs() zobaczysz nieużywany argument input_type. Zostanie on użyty później do zmiany parametrów zależnych od języka, takich jak długość sekwencji i rozmiar słownika.

To ćwiczenie jest częścią kursu

Tłumaczenie maszynowe z Keras

Zobacz kurs

Instrukcje do ćwiczenia

  • Przekonwertuj sentences na sekwencje przy użyciu tokenizatora en_tok.
  • Dopełnij sekwencje do stałej długości en_len, stosując określony typ dopełnienia pad_type i obcinanie post.
  • Zamień identyfikatory słów z preproc_text na wektory one-hot o długości en_vocab, używając funkcji to_categorical().
  • Przekonwertuj sentence na dopełnioną sekwencję metodą sents2seqs(), stosując dopełnianie pre.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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=____)
Edytuj i uruchom kod