Если вы настаиваете на NNs ... Я бы рассчитал некоторые функции для каждого письма
Функции на основе символов, слов и словарного запаса (примерно 97, как я их считаю):
- Общее количество символов (C)
- Общее количество альфа-символов / C Соотношение альфа-символов
- Общее количество цифр символов / C
- Общее количество пробельных символов / C
- Частота каждой буквы / C (36 букв клавиатуры - A-Z, 0-9)
- Частота специальных символов (10 символов: *, _, +, =,%, $, @, ـ, \, /)
- Всего слов нет (M)
- Общее количество коротких слов / M Две буквы или меньше
- Общее количество символов в словах / C
- Средняя длина слова
- Avg. длина предложения в символах
- Avg. длина предложения в словах
- Длина слова частота. распределение / M Соотношение слов длиной n, n между 1 и 15
- Тип Token Ratio Количество уникальных слов / M
- Hapax Legomena Freq. однократных слов
- Hapax Dislegomena Freq. дважды встречающихся слов
- Мера Кюля
- мера Симпсона D
- мера Сихеля
- W мера Брюне
- Мера Хоноре R
- Частота пунктуации 18 знаков препинания:. ،; ? ! : () - «« »<> [] {}
Вы также можете добавить некоторые дополнительные функции, основанные на форматировании: цвета, шрифты, размеры, ... используется.
Большинство этих мер можно найти в Интернете, в газетах или даже в Википедии (все они простые вычисления, вероятно, основанные на других функциях).
Итак, примерно с 100 объектами вам нужно 100 входов, некоторое количество узлов в скрытом слое и один выходной узел.
Входные данные должны быть нормализованы в соответствии с вашим текущим предварительно классифицированным корпусом.
Я бы разбил его на две группы, использовал одну в качестве учебной группы, а другую - в качестве группы тестирования, никогда не смешивая их. Может быть, при соотношении 50/50 в группах «поезд / тест» с аналогичными показателями «спам / не спам».