Я пробую код по этой ссылке http://deeplearning.net/tutorial/lstm.html и изменил данные imdb на свои собственные данные. Я пытаюсь расширить эту модель до трехмерной многомерной модели с добавлением «нейтрального» класса вместо биномиальной модели, представленной в учебнике, который классифицирует только «положительные» и «отрицательные» классы.LSTM Networks for Sentiment Analysis - Как расширить эту модель до 3 классов и классифицировать новые примеры?
Чтобы построить эту новую модель, я переписал build_dict и grab_data функции построить свой собственный словарь и возвращающие данные для трех классов и были сделаны следующие изменения в основной() в imdb_preprocess.py :
dictionary = build_dict()
train_x_pos, train_x_neu, train_x_neg = grab_data('train', dictionary)
test_x_pos, test_x_neu, test_x_neg = grab_data('test', dictionary)
train_x = train_x_pos + train_x_neu + train_x_neg
train_y = [1] * len(train_x_pos) + [0] * len(train_x_neu) + [-1] * len(train_x_neg)
test_x = test_x_pos + test_x_neu + test_x_neg
test_y = [1] * len(test_x_pos) + [0] * len(test_x_neu) + [-1] * len(test_x_neg)
ли мои модификации train_y и test_y правильно?
Предполагая, что они правильны, я пошел вперед и обучил эту модель на своих данных, и я был успешно сохранить новые версии lstm_model.npz и lstm_model.npz.pkl.
Теперь, как проверить эту модель на новом примере? Пусть новый, невидимый примером является следующий текст:
new_example = "I am very happy that I've been able to create a new LSTM sentiment model!"
Мое понимание, что функция pred_probs должен быть вызван, который принимает параметры f_pred_prob, prepare_data, данных, итератор и verbose = False. Что я могу передать этим параметрам? Я предполагаю, что вызов функции тогда будет примерно таким:
pred_probs(f_pred_prob, prepare_data, data=new_example, iterator, verbose=False)