前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术流|五分钟带你鉴别垃圾邮件

技术流|五分钟带你鉴别垃圾邮件

作者头像
用户1386409
发布2018-07-26 10:05:37
5210
发布2018-07-26 10:05:37
举报
文章被收录于专栏:PaddlePaddlePaddlePaddle

大家好,又到了一周案例时间,5分钟带你突破技术

从各种宣传页广告到钓鱼邮件,垃圾邮件漫天飞舞

如果它们一直很安静,只要一键清除就可以删掉

然而,现在“垃圾”不仅数量增加,智商也急速上升

最明显的例子就是它们成功把大家的钱包掏空、资料锁定

在如今诈骗信息满天飞的今天,如何能有效规避掉风险?

主角PaddlePaddle登场,教你如何鉴别垃圾邮件

Step1 数据收集与清洗

1)邮件样本广告邮件,保存为典型的Spam,分为元数据(发信方、书信方、编码格式等)和正文,提炼代表垃圾邮件的关键词

2)安装结巴分词,根据其中提供较为方便的分词方式,对正文部分进行处理

3)借助神经网络基本架构。输入内容是经过编码后的自然语言,变成张量,工具选择gensim,模块中选择Word2Vec类别。

4)分词后,得到spam.txt,即邮件样本集合,映射到向量,这样词语之间的关系也能够显示出来。

Step2 模型搭建

此步骤理论基础:

全连接层,通俗理解起来,每一层的所有神经元都和下一层两两有关

代码解读:

size:是神经元个数,根据代码计算机性能决定,activation选择linear。Fc1中,size是90个,代表有90个神经元

dropout:消减过拟合情况,可以理解为是修正90个神经元进行“减负”,避免模型跑偏

dropout rate: 就是每次扔掉多少神经元的比例

fc2-fc4:就是全连接层,每一层输入就是上一层的输出

最后一层激活函数是ReLu,是一个修正线性单元,在神经网络中引入非线性,可以对更复杂的情况进行分类。

bn :即batch normalization,即归化层,把之前的数据统计分布调整为均值0、方差1,提高分类准确度

Step3 确定训练代码

变量cost: 损失函数,衡量分类是否正确,parameters生成将要优化的参数级

Optimizer:优化器,使用Adam,并且加入L2正则化,模型平均,相关的设置参数,而超参数需要后续调整

生成训练器,随机梯度下降

最后,启用trainer就可以训练处自动鉴别垃圾邮件的模型

收集数据-清洗数据-搭建模型-训练使用

机智的小伙伴们一定都记好啦

当然,除了鉴别,肯定也有小伙伴技痒,想去“以牙还牙”

PaddlePaddle应用场景系列内附“反击”详细攻略

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PaddlePaddle 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档