Začněte nyníZačněte zdarma

Obrácení pořadí vět

V tomto cvičení se naučíš, jak obrátit pořadí vět pro model enkodéru. Jak jsme si řekli, obrácení zdrojových vět pomáhá vytvořit silné počáteční propojení mezi enkodérem a dekodérem, což zlepšuje výkon modelu. Pamatuj ale, že přínos závisí na dvojici jazyků, mezi kterými překládáš. Pokud mají stejné pořadí podmět, sloveso a předmět, model z toho těží.

V tomto cvičení upravíš funkci sents2seqs() tak, aby uměla věty podle potřeby obrátit. Uživatel může zadat logický argument reverse, který určuje, zda se má text obrátit.

Toto cvičení je součástí kurzu

Machine Translation with Keras

Zobrazit kurz

Pokyny k cvičení

  • Doplň signaturu funkce sents2seqs() o nový keyword argument reverse s výchozí hodnotou False.
  • Obrať vrácená ID sekvencí podél časové dimenze (pomocí syntaxe ::-1), aby se ID prvního slova dostalo na poslední místo.
  • Zavolej sents2seqs(), obrať zadané věty sentences a ponech všechny ostatní parametry s jejich výchozími hodnotami.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

sentences = ["california is never rainy during july ."]
# Add new keyword parameter reverse which defaults to False
def ____(input_type, sentences, onehot=False, pad_type='post', ____=____):     
    encoded_text = en_tok.texts_to_sequences(sentences)
    preproc_text = pad_sequences(encoded_text, padding=pad_type, truncating='post', maxlen=en_len)
    if reverse:
      # Reverse the text using numpy axis reversing
      preproc_text = preproc_text[:, ____]
    if onehot:
        preproc_text = to_categorical(preproc_text, num_classes=en_vocab)
    return preproc_text
# Call sents2seqs to get the padded and reversed sequence of IDs
pad_seq = ____('source', ____, ____=____)
rev_sent = [en_tok.index_word[wid] for wid in pad_seq[0][-6:]] 
print('\tReversed: ',' '.join(rev_sent))
Upravit a spustit kód