ПочатиПочніть безкоштовно

Розвертання речень

Тут ви навчитеся розвертати речення для моделі кодувальника. Як ми обговорювали, розвертання вихідних речень допомагає встановити сильний початковий зв'язок між кодувальником і декодувальником, що підвищує продуктивність моделі. Однак пам'ятайте, що користь залежить від пари мов, між якими ви перекладаєте. Якщо в обох мовах однаковий порядок підмета, присудка та додатка, це буде корисно для моделі.

У цій вправі ви зміните функцію sents2seqs(), щоб за потреби вона могла розвертати речення. Користувач може вказати булівську іменовану змінну reverse, яка вмикає розворот тексту.

Ця вправа є частиною курсу

Machine Translation з Keras

Переглянути курс

Інструкції до вправи

  • Запишіть сигнатуру функції sents2seqs(), додавши новий іменований аргумент reverse, який типово дорівнює False.
  • Розверніть повернуті ідентифікатори послідовності вздовж виміру часу (за допомогою синтаксису ::-1), щоб перший ID слова став останнім.
  • Викличте sents2seqs() і розверніть подані sentences, залишивши решту параметрів за замовчуванням без змін.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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))
Редагувати та запускати код