Я хочу сделать классификацию текста с помощью нейронной сети в Керасе. Я настроил простой тестовый образец, используя следующую сеть:
model = Sequential()
model.add(Embedding(NUMVOCABOLARYWORDS, 5, input_length = sequenceDataPadded.shape[1]))
model.add(LSTM(256, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(128))
model.add(Dense(1))
Эта сеть принимает дополненные токенами последовательности текста. Например. Я токенизирую текст "hello world" = [0,1,0,0,0 ..]. Тренируется и хорошо оценивает.
Теперь моя проблема в том, что я не хочу вводить в сеть одну последовательность, а скорее собирать (скажем, 500) последовательностей в сеть и выводить категорию. Таким образом, вместо ввода с формой (100) теперь это (500, 100). Я не уверен, как лучше всего создать сетевую архитектуру, то есть:
1) Должен ли я сплющить вход или попытаться уменьшить размеры? Какие слои я могу использовать для этой работы?
2) Должен ли я просто создать одну большую последовательность со всем текстом?
3) Имеет ли смысл иметь LSTM с 4 размерами?
4) Существуют ли примеры для классификации с массивом массивов токенов?
Текст собран из разных источников, поэтому разные последовательности в каждом пакете не обязательно связаны с чем-либо, кроме даты.