LSTM For Text Generation

In this section, we’ll explore a popular deep learning model: the recurrent neural network and how it can be used in the generation of sequence data. The universal way to create sequence data in deep learning is to train a model (usually an RNN or a convnet) to predict the next token or next few tokens in a series, based on the previous tokens as input. For instance, let's imagine that we're given the sentence with these words as input "i love to work in deep learning", we will train the network to predict the next character as our target.

When working with textual data, tokens are typically words or characters, and any network that can model the probability of the next token given the previous ones is called a language model which can capture the latent space of language.

Upon training of the language model, we can then proceed to feed some initial text and ask it to generate the next token, then add the generated token back into the language model to further predict next tokens. For our hypothetical use case, our creative client will use this model and later provide examples of text that we would then be asked to create novel content in that style.

The first step in building the generative model for text is to import all the modules required. Keras API's will be used in this project to create the models and keras utils to download the dataset. In order to build text generation modules, we need a significant amount of simple text data.

import keras
import numpy as np
from keras import layers
# Gather data
path = keras.utils.get_file(
'sample.txt',
origin='https://s3.amazonaws.com/text-datasets/nietzsche.txt')
text = open(path).read().lower()
print('Number of words in corpus:', len(text))
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset