Machine Translation with Keras
Thushan Ganegedara
Data Scientist and Author
Test the model on unseen data
How?
en_st = ['the united states is sometimes chilly during december , but it is sometimes freezing in june .']
en_seq = sents2seqs('source', en_st, onehot=True, reverse=True)
print(np.argmax(en_seq, axis=-1)
English: ['the united states is sometimes chilly during december ,
but it is sometimes freezing in june .']
Reversed sentence: ['june in freezing sometimes is it ...']
Reversed sequence: [[34 3 54 10 2 4 7 45 5 69 10 2 23 22 6]]
Generating a prediction
fr_pred = model.predict(en_seq)
fr_pred.shape
[sentences, seq len, vocab size]
fr_seq = np.argmax(fr_pred, axis=-1)[0]
[[ 3 7 35 34 2 ... 5 4 4 0 0]] # <= fr_seq
[num sentences, sequence len]
fr_sentence = ' '.join([fr_id2word[i] for i in fr_seq if i != 0])
English: the united states is sometimes chilly during december , but it is sometimes freezing in june .
French: les états unis est parfois froid en décembre mais il est parfois le gel en
French (Google Translate): les etats-unis sont parfois froids en décembre, mais parfois gelés en juin
word_list = [fr_tok.index_word[i] for i in fr_seq if i != 0]
word_list = []
for i in fr_seq:
if i != 0:
word_list.append(fr_tok.index_word[i])
Machine Translation with Keras