# BayesSpam
python实现基于贝叶斯的简单垃圾邮件分类
在400封邮件(正常邮件与垃圾邮件各一半)的测试集中测试结果为分类准确率95.15%,在仅仅统计词频计算概率的情况下,分类结果还是相当不错的。
**1、准备工作**
python3.4开发环境;
结巴分词工具:https://github.com/fxsjy/jieba
**2、贝叶斯公式**
我们要做的是计算在已知词向量$w=(w_1,w_2,...,w_n)$的条件下求包含该词向量邮件是否为垃圾邮件的概率,即求:
<center>$P(s|w),w=(w_1,w_2,...,w_n)$</center>
其中,$s$表示分类为垃圾邮件
根据贝叶斯公式和全概率公式,
$P(s|w_1,w_2,...,w_n)$
$=\frac {P(s,w_1,w_2,...,w_n)}{P(w_1,w_2,...,w_n)}$
$=\frac {P(w_1,w_2,...,w_n|s)P(s)}{P(w_1,w_2,...,w_n)}$
$=\frac {P(w_1,w_2,...,w_n|s)P(s)}{P(w_1,w_2,...,w_n|s)\cdot p(s)+P(w_1,w_2,...,w_n|s^{'})\cdot p(s^{'})}\qquad\qquad...式1$
根据朴素贝叶斯的条件独立假设,并设先验概率$P(s)=P(s^{'})=0.5$,上式可化为:
$=\frac {\prod\limits_{j=1}^nP(w_j|s)}{\prod\limits_{j=1}^nP(w_j|s)+\prod\limits_{j=1}^nP(w_j|s^{'})}$
再利用贝叶斯$P(w_j|s)=\frac{P(s|w_j)\cdot P(w_j)}{P(s)}$,式子化为
$=\frac {\prod\limits_{j=1}^nP(s|w_j)}{\prod\limits_{j=1}^nP(s|w_j)+\prod\limits_{j=1}^nP(s^{'}|w_j)}$
$=\frac {\prod\limits_{j=1}^nP(s|w_j)}{\prod\limits_{j=1}^nP(s|w_j)+\prod\limits_{j=1}^n\left(1-P(s|w_j)\right)}\qquad\qquad...式2$
至此,我们接下来会用式2来计算概率$P(s|w)$,为什么不用式1而用式2来计算概率,是因为通过式2可以将关于$s^{'}$的部分用$s$表示,方便计算。
**3、实现步骤**
具体实现的源码已经给出,这里简单说下思路,就是一个分词并记录词频的过程:
(1)对训练集用结巴分词,并用停用表进行简单过滤,然后使用正则表达式过滤掉邮件中的非中文字符;
(2)分别保存正常邮件与垃圾邮件中出现的词有多少邮件出现该词,得到两个词典。例如词"疯狂"在8000封正常邮件中出现了20次,在8000封垃圾邮件中出现了200次;
(3)对测试集中的每一封邮件做同样的处理,并计算得到$P(s|w)$最高的15个词,在计算过程中,若该词只出现在垃圾邮件的词典中,则令$P(w|s^{'})=0.01$,反之亦然;若都未出现,则令$P(s|w)=0.4$。PS.这里做的几个假设基于前人做的一些研究工作得出的。
(4)对得到的每封邮件中重要的15个词利用式2计算概率,若概率$>$阈值$\alpha(一般设为0.9)$,则判为垃圾邮件,否则判为正常邮件。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
利用python实现基于贝叶斯的简单垃圾邮件分类(准确率达96%)+源码+文档+实现步骤,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: python实现基于贝叶斯的简单垃圾邮件分类 在400封邮件(正常邮件与垃圾邮件各一半)的测试集中测试结果为分类准确率95.15%,在仅仅统计词频计算概率的情况下,分类结果还是相当不错的。 1、准备工作 python3.4开发环境; 实现步骤 具体实现的源码已经给出,这里简单说下思路,就是一个分词并记录词频的过程: (1)对训练集用结巴分词,并用停用表进行简单过滤,然后使用正则表达式过滤掉邮件中的非中文字符; (2)分别保存正常邮件与垃圾邮件中出现的词有多少邮件出现该词,得到两个词典。例如词"疯狂"在8000封正常邮件中出现了20次,在8000封垃圾邮件中出现了200次; (3)对测试集中的每一封邮件做同样的处理,并计算得到$P(s|w)$最高的15个词,在计算过程中,若该词只出现在垃圾邮件的词典中,则令$P(w|s^{'})=0.01$,反之亦然;若都未出现,则令............
资源推荐
资源详情
资源评论
收起资源包目录
利用python实现基于贝叶斯的简单垃圾邮件分类(准确率达96%)+源码+文档+实现步骤(毕业设计&课程设计&项目开发) (2000个子文件)
1000 1009B
1001 1KB
1004 1KB
1009 909B
101 861B
1010 1KB
1012 1KB
1014 1KB
1018 1KB
1019 1KB
1022 672B
1023 708B
1027 1KB
1028 1KB
1029 1KB
1031 801B
1036 949B
1039 1KB
104 870B
1040 1KB
1049 936B
1057 1KB
1058 1KB
1068 1KB
107 2KB
1071 1KB
1073 1KB
108 2KB
1081 1KB
1084 1KB
1086 934B
1087 1KB
1090 1KB
1092 1KB
1106 1KB
1109 1KB
112 869B
1122 1KB
1130 770B
1134 1KB
1138 827B
1142 1KB
1143 1KB
1152 1KB
1153 1KB
1159 1KB
1164 1KB
1165 1KB
1176 1KB
1187 1KB
119 1KB
1203 1KB
121 699B
1210 1KB
1214 1KB
1215 1KB
122 1KB
123 1KB
1233 1KB
124 1014B
1242 1KB
1243 1KB
1255 1KB
1258 2KB
1279 974B
1280 989B
1292 1KB
1294 949B
1295 1KB
1298 1KB
13 1KB
1301 1KB
1315 1KB
1316 1KB
1322 1KB
1334 1KB
1339 1KB
1348 2KB
1354 1KB
1357 858B
1363 764B
1366 1KB
1367 2KB
1369 1KB
1371 1KB
1373 1KB
1376 1KB
1378 1KB
1380 1KB
1382 922B
1389 1KB
1396 1KB
1398 1KB
140 2KB
1400 734B
1401 2KB
1405 1KB
1407 1KB
141 1KB
1410 1KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
梦回阑珊
- 粉丝: 5032
- 资源: 1656
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- camera BSP 开发稳定性问题分析
- Unity URP下 SceneView窗口 渲染模式里Debug 加MipMaps的shader
- 【Unity 插件】Photon Multiplayer Template (For Game Creator 2)
- 【字幕SRT翻译器】+【支持9种语言】+【大模型翻译,效果一级棒】+【永久不过期】
- PHP站长导航资源网站导航系统源码修复版
- 消息队列中间件RabbitMQ的CentOS环境下安装与配置指南
- yolov6n.onnx
- 高级系统架构设计师下午试题模拟题6套试题.pdf
- 科技公司员工转正评估表.xlsx
- 微观企业劳动力生产率数据(1999-2023年).txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功