Recurrent Neural Networks (RNN's) voor taalmodellen met Keras
David Cecchini
Data Scientist

# Instantieer het model model = Sequential()# Embedding-laag voor de invoertaal model.add(Embedding(input_language_size, input_wordvec_dim, input_length=input_language_len, mask_zero=True))# Voeg LSTM-laag toe model.add(LSTM(128))# Herhaal de laatste vector model.add(RepeatVector(output_language_len))
# Direct na de encoder model.add(LSTM(128, return_sequences=True))# Voeg TimeDistributed toe model.add(TimeDistributed(Dense(eng_vocab_size, activation='softmax')))

# Modules importeren
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)# Tekst naar reeks numerieke indexen X = tokenizer.texts_to_sequences(input_texts_list)# Reeksen opvullen X = pad_sequences(X, maxlen=length, padding='post')
# Use the Tokenizer class tokenizer = Tokenizer() tokenizer.fit_on_texts(output_texts_list)# Tekst naar reeks numerieke indexen Y = tokenizer.texts_to_sequences(output_texts_list)# Reeksen opvullen Y = pad_sequences(Y, maxlen=length, padding='post')
# Maak een tijdelijke variabele ylist = list()# Loop over de reeks numerieke indexen for sequence in Y:# One-hot-encoderen per index in de zin encoded = to_categorical(sequence, num_classes=vocab_size)# One-hot-resultaat toevoegen aan de lijst ylist.append(encoded)# Naar np.array omzetten en reshapen Y = np.array(ylist).reshape(Y.shape[0], Y.shape[1], vocab_size)
Het model trainen:
model.fit(X, Y, epochs=N)
Evalueren:
nltk.translate.bleu_scoreRecurrent Neural Networks (RNN's) voor taalmodellen met Keras