Я делаю классификатор на основе модели CNN в Керасе.
Я буду использовать его в приложении, где пользователь может загрузить приложение и ввести текст ввода, и модель будет загружена из весови делать прогнозы.
Дело в том, что я также использую вложения GloVe, а модель CNN также использует дополненные текстовые последовательности.
Я использовал токенизатор Keras следующим образом:
tokenizer = text.Tokenizer(num_words=max_features, lower=True, char_level=False)
tokenizer.fit_on_texts(list(train_x))
train_x = tokenizer.texts_to_sequences(train_x)
test_x = tokenizer.texts_to_sequences(test_x)
train_x = sequence.pad_sequences(train_x, maxlen=maxlen)
test_x = sequence.pad_sequences(test_x, maxlen=maxlen)
Я обучил модель и предсказал на тестовых данных, но теперь я хочу проверить то же самое с загруженной моделью, которую я загрузил и работаю.
Но моя проблема здесь в том, что если я предоставлю один отзыв, ончтобы пройти через tokeniser.text_to_sequences()
, который возвращает двумерный массив, с формой (num_chars, maxlength)
и, следовательно, с последующими предсказаниями num_chars
, но мне нужно в форме (1, max_length)
.
Я используюследующий код для прогноза:
review = 'well free phone cingular broke stuck not abl offer kind deal number year contract up realli want razr so went look cheapest one could find so went came euro charger small adpat made fit american outlet, gillett fusion power replac cartridg number count packagemay not greatest valu out have agillett fusion power razor'
xtest = tokenizer.texts_to_sequences(review)
xtest = sequence.pad_sequences(xtest, maxlen=maxlen)
model.predict(xtest)
Вывод:
array([[0.29289 , 0.36136267, 0.6205081 ],
[0.362869 , 0.31441122, 0.539749 ],
[0.32059124, 0.3231736 , 0.5552745 ],
...,
[0.34428033, 0.3363668 , 0.57663095],
[0.43134686, 0.33979046, 0.48991954],
[0.22115968, 0.27314988, 0.6188136 ]], dtype=float32)
Мне нужен один прогноз здесь array([0.29289 , 0.36136267, 0.6205081 ])
, так как у меня есть один отзыв.