如果你坚持使用神经网络......我会为每封电子邮件计算一些特征
基于字符、基于单词和词汇的功能(我数了一下,大约有 97 个):
- 字符总数 (C)
- alpha 字符总数 / C alpha 字符的比率
- 数字字符总数/ C
- 空白字符总数/C
- 每个字母的频率 / C(键盘的 36 个字母 - AZ,0-9)
- 特殊字符的频率(10 个字符:*、_、+、=、%、$、@、ـ、\、/)
- 总字数(M)
- 总短字数/M 两个字母或更少
- 总字数/C
- 平均字长
- 平均 以字符为单位的句子长度
- 平均 单词的句子长度
- 字长频率 distribution/M 长度为 n 的单词的比率,n 介于 1 和 15 之间
- Type Token Ratio No. Of unique Words/ M
- Hapax Legomena 频率。一次出现的词
- Hapax Dislegomena 频率。出现两次的词
- Yule 的 K 度量
- 辛普森 D 度量
- Sichel 的 S 度量
- Brunet 的 W 度量
- Honore 的 R 度量
- 标点符号的频率 18 个标点字符:. ; ; ? !: ( ) – “ « » < > [ ] { }
您还可以根据格式添加更多功能:颜色、字体、大小……使用。
这些度量中的大多数都可以在网上、论文甚至维基百科中找到(它们都是简单的计算,可能基于其他特征)。
因此,对于大约 100 个特征,您需要 100 个输入、隐藏层中的一些节点和一个输出节点。
输入需要根据您当前的预分类语料库进行标准化。
我把它分成两组,一组作为训练组,另一组作为测试组,从不混合。也许在具有相似垃圾邮件/非垃圾邮件比率的训练/测试组的比例为 50/50。