Введение в машинный перевод

Машинный перевод с Keras

Thushan Ganegedara

Data Scientist and Author

Машинный перевод

Примеры переводов

Машинный перевод с Keras

Машинный перевод

Перевод с иконкой Google

Машинный перевод с Keras

План курса

  • Глава 1 – Введение в машинный перевод
  • Глава 2 – Реализация модели машинного перевода (архитектура «кодировщик-декодер»)
  • Глава 3 – Обучение модели и генерация переводов
  • Глава 4 – Улучшение модели перевода
Машинный перевод с Keras

Набор данных (корпус предложений English–French)

  • Английский корпус
new jersey is sometimes quiet during autumn , and it is snowy in april .
the united states is usually chilly during july , and it is usually freezing ...
california is usually quiet during march , and it is usually hot in june .
  • Французский корпус
new jersey est parfois calme pendant l' automne , et il est neigeux en avril .
les états-unis est généralement froid en juillet , et il gèle habituellement ...
california est généralement calme en mars , et il est généralement chaud en juin .
1 https://github.com/udacity/deep-learning/tree/master/language-translation/data
Машинный перевод с Keras

Машинный перевод – обзор

С английского на французский

Машинный перевод с Keras

Машинный перевод – обзор

Термины: исходный и целевой языки

Машинный перевод с Keras

Машинный перевод – обзор

Модель машинного перевода

Машинный перевод с Keras

Машинный перевод – обзор

Модель машинного перевода

Машинный перевод с Keras

Векторы one-hot encoding

  • Вектор из единиц и нулей
  • Длина вектора определяется размером словаря
  • Словарь – набор уникальных слов в наборе данных

Векторы one-hot

Машинный перевод с Keras

Векторы one-hot encoding

Словарь с соответствием слов и их индексов

word2index = {"I":0, "like": 1, "cats": 2}

Преобразование слов в идентификаторы (индексы)

words = ["I", "like", "cats"]
word_ids = [word2index[w] for w in words]
print(word_ids)
[0, 1, 2]
Машинный перевод с Keras

Векторы one-hot encoding

One-hot encoding без указания длины выходного вектора

onehot_1 = to_categorical(word_ids)
print([(w,ohe.tolist()) for w,ohe in zip(words, onehot_1)])
[('I', [1.0, 0.0, 0.0]), ('like', [0.0, 1.0, 0.0]), ('cats', [0.0, 0.0, 1.0])]

One-hot encoding с указанием длины выходного вектора

onehot_2 = to_categorical(word_ids, num_classes=5)
print([(w,ohe.tolist()) for w,ohe in zip(words, onehot_2)])
[('I', [1.0, 0.0, 0.0, 0.0, 0.0]), ('like', [0.0, 1.0, 0.0, 0.0, 0.0]), 
('cats', [0.0, 0.0, 1.0, 0.0, 0.0])]
Машинный перевод с Keras

Давайте потренируемся!

Машинный перевод с Keras

Preparing Video For Download...