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

Генерування перекладів з англійської на французьку

Чи знали ви, що банк HSBC колись витратив 10 мільйонів доларів на ребрендинг свого слогана через помилку перекладу?

Ми використаємо натреновану модель, щоб передбачити французький переклад англійського речення за допомогою model.predict(). Вам надано натреновану модель (model). Її навчено 50 епох на 100 000 речень; вона досягла близько 90% точності на валідаційній вибірці з понад 35 000 слів. Завантаження цієї вправи може тривати довше, оскільки перед стартом підвантажується тренована модель. Крім того, вам буде надано словник (fr_id2word), який можна використати для перетворення індексів слів у самі слова. Нарешті, ви застосуєте функцію sents2seqs, яку реалізували раніше, щоб попередньо обробити дані перед подачею їх у модель.

Скористайтеся help(sents2seqs), щоб пригадати, які аргументи приймає функція sents2seqs().

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

Machine Translation з Keras

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

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

  • Попередньо обробіть вихідне en_st, щоб перетворити його на onehot-кодований масив numpy, використавши раніше визначену функцію sents2seqs.
  • Передбачте результат для en_seq, використавши надану натреновану model.
  • Витягніть максимальний індекс для кожного передбачення з fr_pred за допомогою np.argmax і запишіть у fr_seq.
  • Перетворіть ідентифікатори французької послідовності на речення за допомогою спискового включення (не забудьте ігнорувати 0) і запишіть його у fr_sent.

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

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

en_st = ['the united states is sometimes chilly during december , but it is sometimes freezing in june .']
print('English: {}'.format(en_st))

# Convert the English sentence to a sequence
en_seq = ____(____, en_st, ____=True, reverse=____)

# Predict probabilities of words using en_seq
fr_pred = ____.____(en_seq)

# Get the sequence indices (max argument) of fr_pred
fr_seq = ____.____(fr_pred, axis=____)[0]

# Convert the sequence of IDs to a sentence and print
fr_sent = [____[i] for i in ____ if i != ____]
print("French (Custom): {}".format(' '.join(fr_sent)))
print("French (Google Translate): les etats-unis sont parfois froids en décembre, mais parfois gelés en juin")
Редагувати та запускати код