from pickle import load
from keras.models import load_model
from keras.preprocessing.sequence import pad_sequences
import numpy as np

# Оцениваем тональность на отдельном отзыве
text = 'Я невероятно многого ждал от этого фильма. Нет, даже больше. Так, как аватар я не ждал в своей жизни, ' \
       'наверное, ничего. Я очень боялся разочароваться, разочароваться именно из-за этих завышенных ожиданий. И я ' \
       'всегда, всегда, независимо от качества фильма, получал меньше, чем ожидал. Так вот, повторюсь, так сильно, ' \
       'как аватар, я не ждал еще ничего (ни одного фильма, это уж точно) и, впервые, результат превзошел ВСЕ ' \
       'ожидания. 3 часа пролетели, как 1 миг. Стыдно признаться, но, наверное, впервые в кинотеатре я прослезился, ' \
       'причем не один раз. Это гениальное кино, это веха, это начало новой эпохи. Не представляю, как я теперь буду ' \
       'смотреть новые фильмы, ведь всегда, всегда я буду сравнивать их с аватаром PS. Смотрел в аймаксе, и это, ' \
       'естественно, сыграло некую положительную роль в моем восприятии фильма. Высший балл, я ставлю его только ' \
       'одному, своему любимому фильму. На данный момент это АВАТАР, наверняка минимум до АВАТАРА 2 10 из 10 '
max_review_len = 1000

with open('tokenizer4.pickle', 'rb') as handle:
    tokenizer = load(handle)

model = load_model('best_model4.h5')
sequence = tokenizer.texts_to_sequences([text])
data = pad_sequences(sequence, maxlen=max_review_len)
result = model.predict(data)

if np.ndarray.argmax(result) == 0:
    print('Отзыв отрицательный')
elif np.ndarray.argmax(result) == 2:
    print('Отзыв положительный')
else:
    print('Отзыв нейтральный')
