在现代社会,垃圾短信已成为困扰我们日常生活的常见问题。不论是诈骗短信、广告推销,还是恶意链接,这些垃圾信息不仅打扰我们的正常生活,更可能带来严重的安全隐患。今天,我们为您带来一款强大的中文垃圾短信检测系统,基于先进的机器学习技术,助您高效识别垃圾短信,保障信息安全!

🚀 项目亮点
✅ 1. 支持多种机器学习模型
该系统内置了多种经典的机器学习算法,包括:
- 朴素贝叶斯 (Naive Bayes)
- 逻辑回归 (Logistic Regression)
- 支持向量机 (SVM)
用户可以根据需求选择不同的模型进行训练与测试,以确保最佳的分类效果。
✅ 2. 强大的文本处理能力
- CountVectorizer 和 TF-IDF 支持,确保灵活处理文本数据。
- 支持n-gram设置,可自定义 1-gram 到 2-gram 词组处理。
- 停用词过滤,自动过滤无意义的常用词,提升模型准确率。
✅ 3. 可视化分析
检测结果一目了然,支持:
- 混淆矩阵可视化
- 精准率、召回率、F1-score等评估指标
所有图表均自动生成,方便用户理解模型效果。
✅ 4. 灵活的超参数设置
- 使用命令行参数控制模型的训练过程。
- 支持调整
alpha
平滑参数、ngram
范围等参数。
✅ 5. 日志记录与错误处理
- 自动记录训练过程,包括模型选择、超参数、测试结果等。
- 发生异常时自动记录错误日志,方便后续排查问题。
🎯 技术原理与实现细节
本系统采用了Python + scikit-learn机器学习框架,结合了以下技术原理:
- 文本向量化:将短信内容通过 CountVectorizer 或 TF-IDF 转换为特征矩阵。
- 数据集分割:使用
train_test_split
按 8:2 的比例将数据集分为训练集和测试集。 - 模型训练与评估:使用朴素贝叶斯、逻辑回归、SVM 进行训练,并计算准确率、召回率、F1-score。
- 可视化分析:通过
matplotlib
和seaborn
实现混淆矩阵可视化。
📊 效果展示
训练完成后,系统会生成一份清晰的报告,包括:
- 准确率 (Accuracy)
- 精准率 (Precision)
- 召回率 (Recall)
- F1-Score
- AUC 曲线(如支持概率预测)
此外,还会生成一份直观的混淆矩阵图,帮助用户理解模型在各类短信上的分类效果。
在测试集上的混淆矩阵:
[[126342 1099]
[ 830 13319]]
在测试集上的分类结果报告:
precision recall f1-score support
0 0.99 0.99 0.99 127441
1 0.92 0.94 0.93 14149
accuracy 0.99 141590
macro avg 0.96 0.97 0.96 141590
weighted avg 0.99 0.99 0.99 141590
在测试集上的Accuracy: 0.9864
Precision: 0.9238
Recall: 0.9413
F1 score: 0.9325
AUC: 0.9887
模型Pipeline已保存到: sms_spam_pipeline.pkl
示例测试: ['乌兰察布丰镇市法院成立爱心救助基金', '感谢致电杭州萧山全金釜韩国烧烤店,本店位于金城路xxx号。韩式烧烤等,价格实惠、欢迎惠顾【全金釜韩国烧烤店】', '免费领取优惠券,点击链接即可兑换']
预测结果: [0 1 0]
📦 如何使用?
- 安装依赖:
pip install -r requirements.txt
- 训练模型:
python main.py --data_path ./dataset/sms_pub.csv --model naive_bayes --vectorizer tfidf
- 预测测试:
python main.py --data_path ./dataset/sms_pub.csv --model logistic
- 模型保存与加载
- 训练完成后,模型会自动保存为
sms_spam_pipeline.pkl
,方便后续直接加载进行预测。
🛠️ 应用场景
- 短信防骚扰服务:集成到手机或运营商平台,自动过滤垃圾短信。
- 企业内部邮件过滤:可用于邮件服务器端的恶意邮件检测。
- 智能客服系统:在客户服务系统中识别潜在的恶意消息。