import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences

texts = [
  "I love this movie",
  "This film is amazing",
  "I hate this movie",
  "This was a bad film",
  "Awesome experience",
  "Terrible acting"
]
labels = [1, 1, 0, 0, 1, 0]

tokenizer = Tokenizer(num_words=1000)
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)

X = pad_sequences(sequences, maxlen=5)
y = np.array(labels)

model = Sequential([
  Embedding(input_dim=1000, output_dim=64),  # fixed
  LSTM(32),
  Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

model.fit(X, y, epochs=10, verbose=1)

test_text = ["I really love this film"]
test_seq = tokenizer.texts_to_sequences(test_text)
test_pad = pad_sequences(test_seq, maxlen=5)
prediction = model.predict(test_pad)

print("Sentiment (1=Positive, 0=Negative):", int(prediction[0][0] > 0.5))