[适合新手的NLP项目]基于机器学习的垃圾信息识别分类

news2024/9/24 3:25:05

1.项目背景

电子邮件和短信中的垃圾信息是现代通信中常见的问题之一。随着互联网的普及和移动设备的广泛使用,垃圾信息的传播途径和数量也在迅速增加,这些垃圾信息不仅影响用户的日常通信体验,还可能带来严重的安全威胁,如钓鱼攻击、恶意软件传播以及个人隐私泄露等。因此,准确分类这些信息为垃圾邮件或非垃圾邮件,成为了提升用户体验和保障信息安全的关键。
本项目旨在通过文本分析和机器学习模型对垃圾邮件进行有效检测,验证了机器学习模型在垃圾信息分类中的有效性和可靠性,为构建更加智能和高效的垃圾过滤系统提供了数据支持和技术参考。

2.数据说明

字段名说明
message_content邮件或短信的正文内容
is_spam标签,指示该消息是否为垃圾信息(1表示垃圾邮件,0表示非垃圾邮件)

3.Python库导入及数据读取

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from collections import Counter
from textblob import TextBlob
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import LatentDirichletAllocation
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.svm import SVC
from imblearn.over_sampling import RandomOverSampler
from sklearn.metrics import classification_report,confusion_matrix,roc_curve, auc
data = pd.read_csv('/home/mw/input/data3430/spam_dataset.csv')

4.数据预览

查看数据信息:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 2 columns):
 #   Column           Non-Null Count  Dtype 
---  ------           --------------  ----- 
 0   message_content  1000 non-null   object
 1   is_spam          1000 non-null   int64 
dtypes: int64(1), object(1)
memory usage: 15.8+ KB

查看重复值:

323

虽然有323条重复值,但是等到后面建立模型的时候再处理,前面分析的时候就正常保留,因为一般垃圾信息,很多时候是重复的,建模的时候删除重复值,可以降低过拟合的风险。

检查相同message_content对应不同is_spam的情况:

message_contentis_spam

分析结果显示,数据集中不存在同一条 message_content 对应不同的 is_spam 值的情况,这意味着每条消息内容在数据集中都有唯一的垃圾分类标签,没有冲突的记录。

5.文本分析

5.1可视化分析

垃圾短信的常见词汇:‘details,’(详情), ‘visit’(访问), ‘website’(网站), ‘contact’(联系), ‘directly.’(直接), ‘Click’(点击), ‘account’(账户), ‘special’(特别的), ‘Limited’(限量的), ‘claim’(认领), ‘offer’(优惠), ‘now!’(现在!), ‘avoid’(避免), ‘Verify’(验证), ‘Exclusive’(独家的), ‘selected’(已选中)。
含义:这些词汇反映了垃圾短信的典型特征。垃圾短信通常通过强调紧急性和稀缺性来诱导用户采取行动,如“访问网站查看详情”、“点击链接联系”、“立即验证账户”等。这些词汇多用于促使用户立即做出反应,且常伴有促销或诱导性质的信息,如“特别优惠”、“限量提供”等。

非垃圾短信的常见词汇:‘out.’(结束/出来), ‘reach’(联系), ‘free’(自由/免费的), ‘feel’(感觉), ‘questions,’(问题), ‘attached’(附加的), ‘provide’(提供), ‘review’(审查), ‘forward’(转发), ‘project’(项目), ‘regards,’(问候), ‘Dear’(亲爱的), ‘help.’(帮助), ‘feedback.’(反馈), ‘updated’(更新的)。
含义:非垃圾短信的词汇则更多地反映了日常交流和工作相关的内容。这些短信中常见的词汇如“问题”、“附加的”、“项目”、“问候”等,表明其主要用于正常的沟通和信息传递。非垃圾短信中使用的语言通常更正式,表达关怀和礼貌,如“亲爱的”、“问候”等,且内容可能涉及到项目更新、反馈或提供帮助等。

5.2情感分析

TextBlob 是一个用于处理文本数据的 Python 库,特别适合进行自然语言处理(NLP)任务。它提供了简单易用的接口,可以执行多种 NLP 操作,如情感分析、语言翻译、词性标注等。

垃圾短信的平均情感得分:0.285
非垃圾短信的平均情感得分:0.221
  • 情感得分为正数(0 到 1 之间)表示文本内容趋向于正面情感,两类短信的平均情感得分都为正,表明无论是垃圾短信还是非垃圾短信,整体上都有一定的正面倾向。
  • 垃圾短信的情感倾向较强:垃圾短信的平均情感得分略高于非垃圾短信,表明垃圾短信往往使用更加积极和诱导性的语言来吸引用户,试图营造一种兴奋感或紧迫感。
  • 非垃圾短信的情感较为中性:虽然非垃圾短信也具有正面倾向,但相对更为中性,这可能是因为非垃圾短信往往用于日常交流或工作沟通,使用的语言较为正式、客观,缺少强烈的情感色彩。

5.3文本长度分析

  • 垃圾短信较短:垃圾短信的平均长度明显短于非垃圾短信。这可能是因为垃圾短信通常使用简短、直接的语言,以快速吸引用户的注意,并促使他们立即采取行动。短消息通常包含关键诱导性信息,如点击链接、联系信息或特别优惠等。
  • 非垃圾短信较长:非垃圾短信的平均长度较长,显示出这些短信可能包含更多详细的内容,这些短信可能涉及到完整的交流、详细的项目更新或说明等,因此通常会更长。

5.4垃圾短信主题模型分析

困惑度是LDA模型的一个评估指标,表示模型对数据的拟合程度。困惑度越低,模型对数据的解释能力越好。通常通过在不同的聚类数上训练模型,然后选择困惑度最低的聚类数。

打印出每个主题的关键词:

主题 1: opportunity, investment, risk, invest, returns, free, distant, inheritance, notice, final
主题 2: free, limited, offer, time, don, buy, amazing, deal, book, attached
主题 3: exclusive, fast, promotion, expires, approved, deal, transfer, funds, loan, sign
主题 4: offer, limited, time, special, spot, secure, selected, claim, receive, fast
主题 5: click, instant, premium, services, access, unlock, benefits, product, offer, limited
主题 6: claim, click, reward, selected, special, ve, account, won, prize, congratulations
主题 7: account, verify, required, action, suspension, avoid, win, identity, compromised, urgent
主题 8: avoid, payment, service, confirm, pending, interruption, click, action, suspension, required
主题 9: don, hurry, lifetime, opportunity, quick, simple, trick, rich, pay, penalties
主题 10: click, unique, chance, participate, win, don, fast, product, offer, claim

主题 1: 投资与继承机会
该主题集中在投资机会和遗产继承通知,通常涉及虚假投资项目或远方亲属的遗产,诱导用户提供个人信息或资金。
主题 2: 限时优惠与购买促销
该主题强调限时优惠和促销活动,旨在通过营造紧迫感来推动用户立即购买产品或服务。
主题 3: 独家促销与贷款批准
结合了独家促销信息与贷款批准,可能涉及虚假贷款或资金转移,目标是骗取用户的财务信息或签署虚假合约。
主题 4: 特别优惠与抢购活动
集中在特别优惠和抢购活动,利用稀缺性和紧急感来促使用户快速反应,以获取所谓的“特别优惠”。
主题 5: 高级服务与会员福利
宣传高级服务和会员福利,通常伴随虚假的承诺,吸引用户购买“高级”或“会员”产品。
主题 6: 奖励与账户通知
主要涉及奖励通知和账户信息,通常声称用户赢得了某种奖励或被选中,诱导用户点击链接或提供个人信息。
主题 7: 账户安全与紧急验证
强调账户安全问题,警告用户他们的账户可能已被盗用,要求立即验证,以防止进一步损失。
主题 8: 付款与服务中断通知
关注付款通知和服务中断,警告用户如果不及时支付费用,服务将会被中断,目的是促使用户快速付款。
主题 9: 快速致富与罚款威胁
宣传快速致富机会或警告可能的罚款,通常涉及虚假的投资建议或罚款威胁,诱使用户尽快行动。
主题 10: 参与机会与独特奖励
提供独特的参与机会或虚假奖励,吸引用户点击链接或参与所谓的“独特”机会。

6.朴素贝叶斯

6.1数据预处理

先删除重复值,再使用 TF-IDF 提取文本特征,最后检查样本平衡,发现样本并不平衡,采取7:3划分训练集和测试集,并且在训练集上进行随机过采样。

检查样本平衡性:

is_spam
0    500
1    177
Name: count, dtype: int64

6.2建立模型

朴素贝叶斯分类器评估如下:
              precision    recall  f1-score   support

           0       1.00      1.00      1.00       158
           1       1.00      1.00      1.00        46

    accuracy                           1.00       204
   macro avg       1.00      1.00      1.00       204
weighted avg       1.00      1.00      1.00       204

7.支持向量机

支持向量机分类器评估如下:
              precision    recall  f1-score   support

           0       1.00      1.00      1.00       158
           1       1.00      1.00      1.00        46

    accuracy                           1.00       204
   macro avg       1.00      1.00      1.00       204
weighted avg       1.00      1.00      1.00       204

无论是朴素贝叶斯,还是支持向量机,在该数据集上识别信息是否为垃圾信息的准确率非常高,结合拦截功能,或者自动化删除垃圾信息,非常有用。

8.结论

本项目通过文本分析,构建了朴素贝叶斯和支持向量机两个分类模型,得出了以下结论:

  1. 垃圾短信与非垃圾短信词云分析

    • 垃圾短信:通常通过强调紧急性和稀缺性来诱导用户采取行动。例如,“访问网站查看详情”、“点击链接联系”、“立即验证账户”等词汇经常用于促使用户迅速反应。这些短信常伴有促销或诱导性质的信息,如“特别优惠”、“限量提供”等。
    • 非垃圾短信:更偏向于反映日常交流和工作相关的内容。常见词汇如“问题”、“附加的”、“项目”、“问候”等,表明这些短信主要用于正常的沟通和信息传递。非垃圾短信中使用的语言通常更加正式,表达关怀和礼貌,如“亲爱的”、“问候”等,内容可能涉及项目更新、反馈或提供帮助等。
  2. 情感分析

    • 使用 TextBlob 对两类信息进行情感分析,结果显示垃圾短信的情感倾向更为强烈;而非垃圾短信则表现出较为中性的情感。
  3. 文本长度分析

    • 通过对文本长度的分析,发现垃圾短信通常较短,而非垃圾短信则更长。
  4. 垃圾短信主题模型分析

    • 通过对垃圾短信进行主题模型分析,结果显示可以将垃圾短信分为10个主要主题,从虚假投资机会到限时优惠和账户安全警告。每个主题都有其特定的目的,主要是通过各种手段诱导用户提供个人信息或参与虚假活动。
  5. 分类模型构建

    • 构建的朴素贝叶斯和支持向量机模型在识别垃圾短信方面表现出非常高的准确率。这表明这些模型能够帮助构建更智能、更高效的垃圾过滤系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IP地址与SSL证书:保障网络安全的关键

在数字时代&#xff0c;网络安全至关重要&#xff0c;而SSL&#xff08;安全套接层&#xff09;证书作为加密用户与服务器之间数据传输的利器&#xff0c;扮演着不可或缺的角色。然而&#xff0c;谈及SSL证书时&#xff0c;一个常见的误区是它们通常与域名绑定&#xff0c;而非…

逻辑长路短路“或“运算

长路或运算&#xff08;|&#xff09; 1、长路或运算的运算符&#xff1a; 2、长路或运算在两边都是整数时&#xff0c;是逐位或运算&#xff1b;在两边是关系运算时&#xff0c;是逻辑运算。 3、长路或运算会将两边的关系运算结果都计算出来 【示例】5*3>12 | 4<3…

【运维自动化-配置平台】动态分组功能使用场景

蓝鲸智云配置平台&#xff0c;以下简称配置平台 配置平台的动态分组功能是业务纬度下对同类资源实例的聚合&#xff0c;并且能动态的跟随符合条件的资源实例增多或减少&#xff0c;例如负责人是admin的主机聚合。目前动态分组的结果聚合支持两种 主机集群 主机类型的动态分组…

高性价比的创新选择:气膜水族馆—轻空间

在现代城市规划和旅游发展中&#xff0c;水族馆作为独具特色的休闲娱乐场所&#xff0c;深受游客和投资者的青睐。然而&#xff0c;传统水族馆的建设和维护成本高昂&#xff0c;让许多潜在投资者望而却步。气膜水族馆凭借其高性价比和多重优势&#xff0c;成为了水族馆建设领域…

【小白必备】Meta祭出三篇最详尽的LLaMA微调指南

开源&#xff0c;就要开的彻彻底底。 这不&#xff0c;Meta一连放出三篇技术文章&#xff0c;从大模型适配方法出发&#xff0c;介绍了&#xff1a; 如何使用特定领域数据微调LLM&#xff0c;如何确定微调适配自己的用例&#xff0c;以及如何管理良好训练数据集的经验法则。 接…

大学生家教管理系统

一、项目概述 Hi&#xff0c;大家好&#xff0c;今天分享的项目是《大学生家教管理系统》。 随着社会对高质量教育资源的渴求日益增加&#xff0c;家长们越来越倾向于为孩子寻找家教服务。大学生家教因其年轻、有活力、专业基础扎实而备受欢迎。然而&#xff0c;传统的家教市…

【基础算法总结】BFS 解决拓扑排序

BFS 解决拓扑排序 1.拓扑排序简介2.课程表3.课程表 II4.火星词典 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.拓扑排序简介 拓扑排序解…

品牌标志识别检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

品牌标志识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着全球经济的快速发展和市场竞争的日益激烈&a…

转mp3格式3步走:在线转换与简易方法大揭秘

现如今&#xff0c;音频格式的转换成了我们生活中的常事。说到音频格式&#xff0c;很多人可能首先想到的就是mp3。它体积小、兼容性强&#xff0c;几乎成了我们手机、电脑里的必备音频格式。那么&#xff0c;怎样才能轻松地把其他格式的音频转mp3格式呢&#xff1f;今天&#…

imx93烧录

本文主要是介绍如何烧录镜像到开发板 这里以evk板为例&#xff1a; 当编译之后&#xff0c;会在目录build/tmp/deploy/images/imx93evk下看到一堆的镜像文件&#xff0c;包括u-boot/kernel/设备树还有完整的镜像 执行下面的命令进行烧录&#xff1a; sudo ./uuu -b emmc_all …

坐牢第三十一天(c++)

一.作业&#xff1a; 使用C手动封装一个顺序表&#xff0c;包含成员数组一个&#xff0c;成员变量N个 #include <iostream> #include <cstring> // 引入cstring以使用memcpy using namespace std; // 类型重命名 using datatype int; // typedef int datatype; s…

【PyTorch][chapter 27][李宏毅深度学习][transformer-1]

前言&#xff1a; transformer 是深度学习四大基础架构之一,最早Google 发表在NIPS&#xff08;NeurIPS 全称神经信息处理系统大会), 是一种seq2seq 的模型.采用的Encoder-Decoder 结构,应用比较广泛。 比如文本生成&#xff0c;语音转换&#xff0c;视频生成. 相对RNN, LSTM …

【软件文档】项目总结报告编制模板(Word原件参考)

1. 项目概要 1.1. 项目基本信息 1.2. 项目期间 1.3. 项目成果 1.4. 开发工具和环境 2. 项目工作分析 2.1. 项目需求变更 2.2. 项目计划与进度实施 2.3. 项目总投入情况 2.4. 项目总收益情况 2.5. 项目质量情况 2.6. 风险管理实施情况 3. 经验与教训 3.1. 经验总结…

position的absolute、relative、fixed

’ 本章基于上图讲解。 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"icon" href"/favicon.ico"><meta name"viewport" content"widt…

信息安全(密码学)---数字证书、kpi体系结构、密钥管理、安全协议、密码学安全应用

数字证书 数字证书 (Digital Certificate,类似身份证的作用)----防伪标志 CA(Certificate Authority,电子商务认证授权机构)----ca用自己私钥进行数字签名 数字证书 姓名&#xff0c;地址&#xff0c;组织 所有者公钥 证书有效期 认证机构数字签名 ■ 公钥证书的种类与用…

10.2寸工业墨水屏平板

可翻页查看订单信息 按键下载订单 WIFI 漫游通信 IP65 防水防尘

【LeetCode面试150】——48旋转图像

博客昵称&#xff1a;沈小农学编程 作者简介&#xff1a;一名在读硕士&#xff0c;定期更新相关算法面试题&#xff0c;欢迎关注小弟&#xff01; PS&#xff1a;哈喽&#xff01;各位CSDN的uu们&#xff0c;我是你的小弟沈小农&#xff0c;希望我的文章能帮助到你。欢迎大家在…

android MutableLiveData 赋值

Android开发中&#xff0c;MutableLiveData是一个用于管理可观察型数据的类&#xff0c;它是LiveData的一个子类&#xff0c;可以用来传递数据给UI层。 要给MutableLiveData赋值&#xff0c;你需要调用它的setValue(T)方法或者postValue(T)方法。 1、声明代码&#xff1a; cl…

5大热度榜网红机型测评,公布开放式耳机哪个牌子的好用

盛夏时节&#xff0c;天气越来越热&#xff0c;小伙伴们都在抱怨&#xff0c;实在没法戴口罩了。实际上&#xff0c;大家只关注了呼吸&#xff0c;却忽视了一个问题&#xff0c;其实&#xff0c;我们的耳朵也是要“呼吸”的&#xff0c;闷热的天气里&#xff0c;长时间佩戴入耳…

七年老玩家《王者荣耀》分析三:【视觉与音效】

目录 视觉设计 音效设计 结论 王者荣耀中裸眼3D观看模式的技术细节和玩家反馈是什么&#xff1f; 王者荣耀的音乐音效设计过程中&#xff0c;有哪些知名音乐家和音效设计师参与&#xff1f; 王者荣耀如何通过音效增强游戏的情感体验和沉浸感&#xff1f; 王者荣耀中的CG动…