Introdução à tradução automática

Machine Translation with Keras

Thushan Ganegedara

Data Scientist and Author

Tradução automática

Traduções de "Olá"

Machine Translation with Keras

Tradução automática

Tradução de "Olá" com ícone do Google

Machine Translation with Keras

Descrição do curso

  • Capítulo 1 - Introdução à tradução automática
  • Capítulo 2 - Implementar um modelo de tradução (arquitetura encoder-decoder)
  • Capítulo 3 - Treinar o modelo e gerar traduções
  • Capítulo 4 - Aprimorar o modelo de tradução
Machine Translation with Keras

Conjunto de dados (corpus de frases em inglês-francês)

  • Corpus em inglês
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 .
  • Corpus em francês
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
Machine Translation with Keras

Tradução automática - Visão geral

Inglês para francês

Machine Translation with Keras

Tradução automática - Visão geral

Termos de língua de origem e alvo

Machine Translation with Keras

Tradução automática - Visão geral

Modelo de tradução automática

Machine Translation with Keras

Tradução automática - Visão geral

Modelo de tradução automática

Machine Translation with Keras

Vetores one-hot encoded

  • Um vetor de zeros e uns
  • O tamanho do vetor é definido pelo vocabulário
  • Vocabulário: conjunto de palavras únicas no conjunto de dados

Vetores one-hot

Machine Translation with Keras

Vetores one-hot encoded

Um mapeamento com palavras e seus índices correspondentes

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

Convertendo palavras em IDs ou índices

words = ["I", "like", "cats"]
word_ids = [word2index[w] for w in words]
print(word_ids)
[0, 1, 2]
Machine Translation with Keras

Vetores one-hot encoded

One-hot encoding sem especificar o tamanho do vetor de saída

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 com especificação do tamanho do vetor de saída

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])]
Machine Translation with Keras

Vamos praticar!

Machine Translation with Keras

Preparing Video For Download...