/JunkMailsClassify

使用60000多封邮件作为数据源训练邮件分类模型

Primary LanguageJupyter Notebook

Junk mails classify 垃圾邮件分类

Summary

使用60000多条有标注的邮件数据训练垃圾邮件分类模型并进行预测及模型评估

一、文件预处理

总数据为分216个文件夹,每个文件夹中有300条邮件数据。共216x300 64800条数据
数据格式为(示例):
文件头:
Received: from hotmail.com ([219.133.229.24]) # 发送者服务商及ip
by spam-gw.ccert.edu.cn (MIMEDefang) with ESMTP id j7HBKuJl000715
for hou@ccert.edu.cn; Sun, 21 Aug 2005 14:22:48 +0800 (CST)
Message-ID: 200508171920.j7HBKuJl000715@spam-gw.ccert.edu.cn

上面这些信息都和下面的重复了,丢弃
From: pu@hotmail.com
Subject: =?gb2312?B?yczO8brP1/c=?= # 主题(解码没解出来)直接不要了
To: hou@ccert.edu.cn # 接受者邮箱名
Content-Type: text/plain;charset="GB2312"
Reply-To: pu@hotmail.com
Date: Sun, 21 Aug 2005 14:36:14 +0800 # 时间
X-Priority: 3 # 优先级
X-Mailer: FoxMail 3.11 Release [cn] #发送引擎

结论

首先在文件头部分可以提取到的信息为:
1.发件人
2.收件人
3.发件时间
还有两个可能没什么用的:
优先级、 发送引擎

下接正文:

您好!这是一封善良的商业来函。如果我们打搅了您,我们表示深
切的歉意,请您随手删除我们的邮件。谢谢您的理解和支持!!

致贵公司负责人:您好!
东莞市腾飞实业有限公司本着为双方公司利益的出发点,可向外
优惠代开普通国(地)税发票和电脑增值发票;点数较低,还可以根
据所做数量额度的大小来商讨更优惠的点数,为贵公司节省运作成
本;可用于公司收款、冲帐等业务。本公司郑重承诺所用票据均为各
单位在税务局所申领,可上网查询或到税务局抵扣验证后付款!贵公
司在进出项或做帐上相关的问题可来电咨讯。欢迎诚意的合作。。

信誉为本友交四海,德诚处事商通五洲------是公司的发展宗旨!
《此邮件设置定时发送,如有打扰请原谅》

联系人:刘丹(小姐) 联系电话:13631553193
东莞市腾飞实业有限公司

对于正文处理:

文本处理两种方式: tfidf & word2vec
对于长、大段的文本,选用tfidf效果比较好些

二、数据预处理

读取特征数据
将一个文件存为一条数据 先只读取文本内容

首先取出所有文本
思路为:
匹配第一个字符为 字母的最后一个元素
后面的所有元素
然后拼成一个字符串

三、训练模型

  1. 分词(加载停用词) 保存分词结果
  2. 训练tfidf模型
  3. 对训练集进行预测 获得模型评分
  4. 利用混淆矩阵 输出Recall Precision F1 等模型评测指标