Neural Machine Translation

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

David Cecchini

Data Scientist

Encoder और decoder

Neural Machine Translation आर्किटेक्चर. यह आर्किटेक्चर इनपुट और आउटपुट भाषा के लिए क्रमशः encoder और decoder भागों में बँटा है. encoder हिस्सा इनपुट भाषा के लिए भाषा मॉडल सीखता है और decoder हिस्सा आउटपुट भाषा के लिए. encoder की final state decoder को दी जाती है, जिसके पास कोई अन्य इनपुट नहीं होता.

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

Encoder उदाहरण

# Instantiate the model
model = Sequential()

# Embeding layer for input language model.add(Embedding(input_language_size, input_wordvec_dim, input_length=input_language_len, mask_zero=True))
# Add LSTM layer model.add(LSTM(128))
# Repeat the last vector model.add(RepeatVector(output_language_len))
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

Decoder उदाहरण

# Right after the encoder
model.add(LSTM(128, return_sequences=True))

# Add Time Distributed model.add(TimeDistributed(Dense(eng_vocab_size, activation='softmax')))
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

Data prep

Encoder और decoder के लिए टेक्स्ट तैयारी. encoder में हमें इनपुट भाषा को संख्यात्मक इंडेक्स के अनुक्रम में बदलना होता है, और decoder में आउटपुट भाषा के लिए यही करना होता है और प्रत्येक इंडेक्स को one-hot encode भी करना होता है

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

इनपुट भाषा के लिए डेटा तैयारी

# Import modules
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
# Use the Tokenizer class
tokenizer = Tokenizer()
tokenizer.fit_on_texts(input_texts_list)

# Text to sequence of numerical indexes X = tokenizer.texts_to_sequences(input_texts_list)
# Pad sequences X = pad_sequences(X, maxlen=length, padding='post')
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

आउटपुट भाषा को tokenize करें

# Use the Tokenizer class
tokenizer = Tokenizer()
tokenizer.fit_on_texts(output_texts_list)

# Text to sequence of numerical indexes Y = tokenizer.texts_to_sequences(output_texts_list)
# Pad sequences Y = pad_sequences(Y, maxlen=length, padding='post')
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

आउटपुट भाषा को one-hot encode करें

# Instantiate a temporary variable
ylist = list()

# Loop over the sequence of numerical indexes for sequence in Y:
# One=hot encode each index on current sentence encoded = to_categorical(sequence, num_classes=vocab_size)
# Append one-hot encoded values to the list ylist.append(encoded)
# Transform to np.array and reshape Y = np.array(ylist).reshape(Y.shape[0], Y.shape[1], vocab_size)
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

ट्रेनिंग और मूल्यांकन पर नोट

मॉडल ट्रेन करना:

model.fit(X, Y, epochs=N)

मूल्यांकन:

  • BLEU का उपयोग करें
    • nltk.translate.bleu_score
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

अभ्यास करते हैं!

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

Preparing Video For Download...