Я пытаюсь использовать CNN (сверточная нейронная сеть) для классификации документов. CNN для коротких текстовых / предложений было изучено во многих работах. Тем не менее, кажется, что ни один документ не использовал CNN для длинного текста или документа.
Моя проблема заключается в том , что существует слишком много функций из документа. В моем наборе данных каждый документ содержит более 1000 токенов / слов. Кормить каждый пример с CNN, конвертировать каждый документ в матрицу с помощью word2vec или перчатки в результате большой матрицы. Для каждой матрицы, высота длина документа, а ширина размера слова вложения вектора. В моем наборе данных содержится более 9000 примеров, и на обучение сети (целую неделю) уходит много времени, что затрудняет точную настройку параметров.
Еще один метод извлечения признаков - использовать один горячий вектор для каждого слова, но это создаст очень разреженные матрицы. И, конечно, этот метод даже требует больше времени для обучения, чем предыдущий метод.
Так есть ли лучший способ для извлечения функций без создания больших входных матриц?
И как мы должны обрабатывать документы различной длины? В настоящее время я добавляю специальные строки, чтобы документ имел одинаковую длину, но я не думаю, что это хорошее решение.