Я намагаюся використовувати CNN (звивисту нейронну мережу) для класифікації документів. CNN для короткого тексту / речень вивчався у багатьох працях. Однак, схоже, жоден папір не використовував CNN для довгого тексту чи документа.
Моя проблема полягає в тому, що в документі занадто багато функцій. У моєму наборі даних кожен документ містить більше 1000 лексем / слів. Щоб подати кожен приклад до CNN, я перетворюю кожен документ у матрицю, використовуючи word2vec або рукавичку, отримуючи велику матрицю. Для кожної матриці висота - це довжина документа, а ширина - розмір вектора вбудовування слова. У моєму наборі даних більше 9000 прикладів, і це потребує багато часу для тренування мережі (цілий тиждень), що ускладнює точну настройку параметрів.
Ще один метод вилучення особливостей - використовувати один гарячий вектор для кожного слова, але це створить дуже рідкісні матриці. І звичайно, цей метод навіть займає більше часу на тренування, ніж попередній метод.
То чи існує кращий метод вилучення функцій без створення великих вхідних матриць?
І як ми маємо поводитися з різною довжиною документів? Наразі я додаю спеціальні рядки, щоб документ мав однакову довжину, але не думаю, що це вдале рішення.