垃圾邮件分类的各种尝试(深度学习篇)【附代码】

本文介绍了一种使用深度学习(GloVe + LSTM)进行垃圾邮件分类的方法。首先,数据集被清洗和预处理,然后利用GloVe词向量进行特征表示。接着,构建LSTM网络模型并进行训练。实验结果显示,深度学习模型在小数据集上表现良好。文章还提出了后续优化方向,如改变词向量、增加网络复杂度和融合多模型预测。
摘要由CSDN通过智能技术生成

垃圾邮件分类的各种尝试(深度学习篇)


上一篇博客主要介绍了利用机器学习的方法进行垃圾邮件分类,主要使用的方法有:朴素贝叶斯、SVM、逻辑回归、RF、XGBoost、LightGBM。

垃圾邮件分类的各种尝试(机器学习篇)

如果对上一篇博客介绍的方法已经掌握,那这一篇博客将打开新的世界。本篇博客将采用深度学习的方法来解决垃圾邮件分类问题。

深度学习方法:GloVe+LSTM(也可以将LSTM改为GRU或者CNN)

开源代码地址(欢迎star~):https://github.com/ljx02/Spam_Email_Classificaton

数据集下载链接:由于数据较小,暂时也放到了Git项目中

利用深度学习来解决问题的思路和上一篇介绍的思路是一样的,区别在于选择模型的时候,不光要选择合适的模型,还要搭建模型,配置模型,选择合适的网络结构进行训练。相比较机器学习有丰富的库资源,深度学习会显得复杂一些。

思路是这样的:

  • 读取文本数据,先查看数据质量,可以先清洗一波数据(会有奇效)
  • 特征工程,分析数据并发现特征,对特征进行向量化(需要大量经验)
  • 选择网络结构,根据数据集结构和特点,选择合适的网络结构(需要大量经验判断)
  • 训练模型并测试,通过不断调整超参数,来使模型达到最优(内部知识+大量经验)
  • 预测结果

(可以看出,知识+经验是深度学习领域的利器~~)

数据集格式

总的数据集一共有4458条数据,将按照8:2进行划分训练集和验证集。通过分析发现,其中pam的数量有3866条,占数据集的大多数,可以考虑不平衡样本采样进行训练。

数据集的格式如图所示,有三列分别是ID,Label(pam、spam),Email

在这里插入图片描述

清洗数据集

具体操作流程可以参考我的上一篇文章垃圾邮件分类的各种尝试(机器学习篇)。主要的清洗包括:去掉停用词、去掉URL、去掉HTML标签、去掉特殊符号、去掉表情符号、去掉长重复字、将缩写补全、去掉单字、提取词干等等。这部分代码也几乎是一样的,可以去我的GitHub查看。

使用深度学习的方法

GloVe + LSTM

环境要求:python3.6 、TensorFlow1.14.0、Keras=2.2.4

1. 读取数据

由于数据量不是很大,还是选择了在训练集上进行分割,按8:2进行分割。

train = pd.read_csv("../data/train.csv", encoding='utf-8')

# 后期清洗完数据后,会将训练集分为训练集、验证集、测试集
train_data = tweet_pad[:3000]
test_data = tweet_pad[3000:]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值