这是一个简单的垃圾邮件检测程序,它可以帮助你识别和过滤垃圾邮件。
- 通过建立模型来训练和识别垃圾邮件。
- 提供一个命令行界面,让用户输入邮件并进行分类。
- Python 3.9 或以上版本
这是一个使用Python语言和tkinter库自主设计UI界面的垃圾邮件检测项目,利用贝叶斯算法对邮件文本进行分类,判断是否为垃圾邮件。
- Python 3.9: 这是一种广泛使用的编程语言,支持多种编程范式,具有丰富的库和工具。您可以在这里下载和安装Python。
- tkinter 8.6: 这是Python的标准GUI库,提供了一些基本的控件和组件,用于创建和管理窗口和界面。您可以在这里查看tkinter的文档和教程。
- jieba 0.42.1: 这是Python的一个第三方库,提供了一些中文分词的功能,用于将邮件文本切分成词语和词组。您可以在这里查看jieba的文档和安装方法。
- 训练集在spamFilter.zip中,压缩包中包含以下两个文件:
- normal:存放正常邮件训练集
- spam:存储异常邮件训练集
- chineseoutput.txt: 异常和正常训练集集只保留汉字和分类标签的结果存放文档
- get_mail.py:获取邮箱里的邮件,并对其处理,形成测试集。
- changeFormat.py:处理邮件,令其只保留汉字。
- emailInput.py:用于生成data_input.pkl和data_test.pkl
- emailTrain.py:进行训练,生成data_tfidf.pkl
- email_test_input.txt:测试集只保留汉字和分类标签的结果存放文档
- test.py: 主程序文件,包含UI界面设计和贝叶斯分类器实现的代码
- README.md: 项目说明文档
- 下载或克隆项目到本地
- 安装项目依赖的库
- 运行test.py文件,启动UI界面(此处若要获得文本结果可以见textResult.txt)
- 点击“垃圾邮件检测”按钮,根据贝叶斯分类器的结果,输出邮件是否为垃圾邮件的判断
- 测试结果见报告 点击邮件编号可以看到邮件内容,后面给出的是测试结果
如果想要接入自己的邮箱进行测试,请按照以下步骤操作,请一定注意:要修改相关文件路径和训练集等
- 补齐get_email.py中的目标邮箱账号密码,之后运行get_email.py以获取邮箱中的邮件(此处已经给出测试集合,如要使用自己的邮箱内容,请修改相关输入文件路径,此处给出的参考路径为“email_test_input.txt”)
- 运行changeFormat.py,读入训练集并进行处理(此处给出的建议文件名为“chineseoutput.txt”)
- 分别运行emailTrain.py, emailInput.py,进行数据的读入和模型的训练(得到的相关文件名为“data_test.pkl data_input.pkl data_tfidf.pkl”)
- 之后按照上面说明继续操作
为了使模型的分类效果更好,请尽量使用包含足够多样本的训练数据集。 对于一些特殊的邮件内容或格式,模型的分类效果可能会有限,你可以根据需要对模型进行优化或调整。