Skip to content

中文垃圾邮件过滤,实现与邮箱建立连接并提供UI界面

Notifications You must be signed in to change notification settings

user-qjz/spam-filter

Repository files navigation

垃圾邮件检测

这是一个简单的垃圾邮件检测程序,它可以帮助你识别和过滤垃圾邮件。

功能

  • 通过建立模型来训练和识别垃圾邮件。
  • 提供一个命令行界面,让用户输入邮件并进行分类。

运行环境

  • 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”)
  • 之后按照上面说明继续操作

注意事项

为了使模型的分类效果更好,请尽量使用包含足够多样本的训练数据集。 对于一些特殊的邮件内容或格式,模型的分类效果可能会有限,你可以根据需要对模型进行优化或调整。

About

中文垃圾邮件过滤,实现与邮箱建立连接并提供UI界面

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages