text: from tensorflow.keras.layers import LSTM, Conv1D, MaxPooling1D
  
  # input: a sequence of MAX_SEQUENCE_LENGTH integers
  sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
  embedded_sequences = embedding_layer(sequence_input)
  
  # 1D convolution with 64 output channels
  x = Conv1D(64, 5)(embedded_sequences)
  
  # MaxPool divides the length of the sequence by 5: this is helpful
  # to train the LSTM layer on shorter sequences. The LSTM layer
  # can be very expensive to train on longer sequences.
  x = MaxPooling1D(5)(x)
  x = Conv1D(64, 5)(x)
  x = MaxPooling1D(5)(x)
  
  # LSTM layer with a hidden size of 64
  x = LSTM(64)(x)
  predictions = Dense(5, activation='softmax')(x)
  
  model = Model(sequence_input, predictions)
  model.compile(loss='categorical_crossentropy',
                optimizer='adam', metrics=['acc'])
  
  # You will get large speedups with these models by using a GPU
  # The model might take a lot of time to converge, and even more
  # if you add dropout (needed to prevent overfitting)
  