朴素贝叶斯算法、支持向量机算法等主流的垃圾邮件分类算法都依赖于特征向量的提取和数据集对模型的训练,其中特征向量的提取又依赖于对邮件正文的分词结果。如果垃圾邮件发送者在邮件中插入一些干扰符号,很容易影响分词的结果。例如,在“发票”中间插入“【”变成“发【票”将会使得jieba或者snownlp之类的分词工具无法正常分词,从而干扰最终的邮件分类效果。
一般来说,在一封正常邮件中,是不会出现太多类似于【、】、、-、/这样的字符的。如果一封邮件中包含的类似字符数量超过一定的比例(rate=0.2),我们可以直接认为是垃圾邮件,而不需要朴素贝叶斯算法或者支持向量机等复杂的算法,可以大幅度提高分类速度。
编写程序,对邮件内容:“我公【司免】费开发【票,微信*同-号”的邮件进行分类,提示“垃圾邮件”或“正常邮件”。