Before passing data to the model you converted texts to tokens, cut long sequences to the maximum length and padded short sequences to the same length making all texts equally sized. That’s why Input layer should have shape equal to MAXLEN.
Embedding layer takes sequences of tokens (meaning sequences of integers, where each integer represents a word) and converts them into multi-dimensional vector representations. First argument is the number of words in the dictionary created by the tokenizer (including out-of-vocabulary token).
Second positional argument of the Embedding layer defines how many dimensions each vector would have. You can increase this number, if the model does not perform well, or decrease it, if the task is relatively simple.
Embedding layer should be trainable. It should learn how to transform tokens into vectors.
In a classification task numeric labels normally start at 0 and increase at a step of 1. In your example texts are labeled -1, 0 and 1, which is more like a regression task.
I’m not sure that the first Dropout layer before LSTM is necessary. You can loose some meaningful data there.