简单垃圾邮件过滤系统

article/2025/10/4 5:35:46

在这里插入图片描述头文件:

typedef struct chuan1
{char* str;int chang;int maxchang;}chuan;
int  chushi(chuan* s, int max, char* d) //动态数组方法
{if (max < strlen(d)){printf("初始化错误,MAX太小\n");return 0;}s->str = (char*)malloc(sizeof(char) * max + 1);//for (int n = 0; n < strlen(d); n++)//s->str[n] = d[n];strcpy(s->str, d);s->chang = strlen(d);s->maxchang = max;return 1;
}
void xiaohui(chuan* s)
{free(s->str);s->str = 0;}int bf(chuan s, int start, const char* z) //s主串   z子串  成功返回子串在主串的首字符下标(  >=0  ),否则返回-1  
// n 为  总体 比较中子串在主串的首字符下标, i为主串正在匹配的字符下标  j为子串正在匹配的字符下标,  
{int i = start;int n = i;int j = 0;while (i<s.chang ){if (s.str[i] == z[j]){i++;j++;if (strlen(z) == j) //子串完了并且在主串中找到了子串,则返回子串在主串的首字符(  >=0  )return i - j;}else{n++;i = n;j = 0;}}return -1;
}
int judge(chuan c)  
{char* a=0;int flag = 0;  // flag==0 非垃圾邮件     ==1 垃圾邮件int tag = 0;    // tag==0  汉字   ==1  字母for (int i = 0; i < sum; i++){if (64 < (int)ciku[i][0] && 123 > (int)ciku[i][0])tag = 1;if (bf(c, 0, ciku[i]) != -1){flag = 1;break;}if (tag == 1){a = (char*)malloc(1 * sizeof(ciku[i]) + 1);strcpy(a, ciku[i]);if (islower(ciku[i][0]))   //是小写字母的话{strupr(a);}else{strlwr(a);}if (bf(c, 0, a) != -1){flag = 1;break;}}}free(a);//a=0;  //局部变量指针return flag;}

源文件:

#include<string.h>
#include<string>
#include<iostream>
#include<malloc.h> 
using namespace std;
const char* ciku[] = { "打折"  ,"优惠","FUCK","123" };  //敏感词词库
int sum = 4;                             //若添加敏感词,需在这更改敏感词总数
#include"标头.h"
#define maxsum 100
int main()
{chuan c;char* d = (char*)malloc(sizeof(char) * maxsum);scanf("%[^\n]", d);      //  改动  1   读取字符串,遇到\n结束  这样可以读取空格之后的字符   原来的%s读到空格便会结束chushi(&c, maxsum, d);int flag = judge(c);  //判断是否为垃圾邮件,若为垃圾邮件则返回1,否则返回0if (flag == 1)printf("此邮件为垃圾邮件\n");elseprintf("此邮件为正常邮件\n");xiaohui(&c);       //  改动  2   撤销 串C  申请的动态空间free(d);  //撤销申请的动态空间d = 0;return 1;
}

http://chatgpt.dhexx.cn/article/C8IjwSQ5.shtml

相关文章

【机器学习】朴素贝叶斯实现垃圾邮件过滤

朴素贝叶斯法概述 朴素贝叶斯法是基于贝叶斯定理与特征条件独立性假设的分类方法。对于给定的训练集&#xff0c;首先基于特征条件独立假设学习输入输出的联合概率分布&#xff08;朴素贝叶斯法这种通过学习得到模型的机制&#xff0c;显然属于生成模型&#xff09;&#xff1b…

python:基于朴素贝叶斯算法的垃圾邮件过滤分类

目录 一、朴素贝叶斯算法 1.概述 2.推导过程 二、实现垃圾邮件过滤分类 1.垃圾邮件问题背景 2.朴素贝叶斯算法实现垃圾邮件分类的步骤 3.python实现 参考学习网址&#xff1a;https://blog.csdn.net/weixin_59450364/article/details/124343350 一、朴素贝叶斯算法 1.…

机器学习:朴素贝叶斯的应用之垃圾邮件过滤

机器学习&#xff1a;朴素贝叶斯的应用之垃圾邮件过滤 文章目录 机器学习&#xff1a;朴素贝叶斯的应用之垃圾邮件过滤1.相关概念1.条件概率&#xff1a;2.贝叶斯公式&#xff1a;3.拉普拉斯平滑&#xff1a; 2.朴素贝叶斯分类器1.根据已知数据计算先验概率以及条件概率2.根据M…

【机器学习】贝叶斯算法详解 + 公式推导 + 垃圾邮件过滤实战 + Python代码实现

文章目录 一、贝叶斯简介二、贝叶斯公式推导三、拼写纠正案例四、垃圾邮件过滤案例4.1 问题描述4.2 朴素贝叶斯引入 五、基于朴素贝叶斯的垃圾邮件过滤实战5.1 导入相关库5.2 邮件数据读取5.3 构建语料表&#xff08;字典&#xff09;5.4 构建训练集的特征向量5.5 朴素贝叶斯算…

实现垃圾邮件过滤(Python3实现)

实验代码&#xff1a; import os import re import string import mathDATA_DIR enron target_names [ham, spam]def get_data(DATA_DIR):subfolders [enron%d % i for i in range(1, 7)]data []target []for subfolder in subfolders:# spamspam_files os.listdir(os.pa…

机器学习之朴素贝叶斯实现垃圾邮件过滤

一.朴素贝叶斯概述 朴素贝叶斯法是基于贝叶斯定理与特征条件独立性假设的分类方法。对于给定的训练集&#xff0c;首先基于特征条件独立假设学习输入输出的联合概率分布&#xff08;朴素贝叶斯法这种通过学习得到模型的机制&#xff0c;显然属于生成模型&#xff09;&#xff…

基于逻辑回归方法完成垃圾邮件过滤任务

一、基于逻辑回归方法完成垃圾邮件过滤任务 1、✌ 任务描述 我们日常学习以及工作中会收到非常多的邮件&#xff0c;除了与学习工作相关的邮件&#xff0c;还会收到许多垃圾邮件&#xff0c;包括广告邮件、欺诈邮件等等。本任务通过邮件中包含的文本内容来判断该邮件是正常邮…

【机器学习实战】朴素贝叶斯应用之垃圾邮件过滤

1.什么是朴素贝叶斯2.贝叶斯公式3.朴素贝叶斯常用的三个模型4.朴素贝叶斯实现垃圾邮件过滤的步骤5.垃圾邮件过滤实验&#xff1a;&#xff08;一&#xff09;、准备收集好的数据集&#xff0c;并下载到本地文件夹&#xff08;二&#xff09;、朴素贝叶斯分类器训练函数&#xf…

贝叶斯垃圾邮件过滤

贝叶斯垃圾邮件过滤 译自From Wikipedia, the free encyclopedia 贝叶斯垃圾邮件过滤是一种筛选电子邮件的统计技术。在它的基本形式中&#xff0c;它使用天真贝叶斯分类器在词特征包上识别垃圾电子邮件&#xff0c;这是一种在文本分类中常用的方法。 天真贝叶斯分类器通过使用…

【布隆过滤器】如何防止缓存穿透、海量邮箱的垃圾邮件过滤等问题?

目录 一、布隆过滤器是什么&#xff1f; 二、布隆过滤器的模拟实现 2.1、模拟实现 2.2、布隆过滤器的优点和缺点 优点&#xff1a; 缺点&#xff1a; 2.3、布隆过滤器的删除功能 2.4、布隆过滤器的使用场景 一、布隆过滤器是什么&#xff1f; 它是一种概率型数据结构&am…

垃圾邮件过滤挑战

垃圾邮件过滤挑战 随着网络应用的逐渐发展&#xff0c;电子邮件成为人们日常工作生活中不可分割的一部分。与此同时&#xff0c;垃圾邮件的问题困扰着许多电子邮件的使用者&#xff0c;它们不仅为电子邮件的使用者带来阅读负担&#xff0c;更占用了有限的邮箱空间。为此本研究…

基于C#的机器学习--垃圾邮件过滤

在这一章&#xff0c;我们将建立一个垃圾邮件过滤分类模型。我们将使用一个包含垃圾邮件和非垃圾邮件的原始电子邮件数据集&#xff0c;并使用它来训练我们的ML模型。我们将开始遵循上一章讨论的开发ML模型的步骤。这将帮助我们理解工作流程。 在本章中&#xff0c;我们将讨论以…

基于内容的垃圾邮件过滤

1 引言 电子邮件&#xff08;E-mail&#xff09;以其方便、快捷、低成本的独特魅力成为人们日常生活中不可缺少的通信手段之一。但电子邮件给人们带来极大便利的同时&#xff0c;也日益显示出其负面影响&#xff0c;那就是我们每天收到的邮件中有很大一部分是那种“不请自来”…

朴素贝叶斯——垃圾邮件过滤

文章目录 利用朴素贝叶斯进行文档分类1、获取数据集2、切分文本3、构建词表和分类4、构建分类器5、测试算法 利用朴素贝叶斯进行垃圾邮件过滤1、导入数据集2、垃圾邮件预测 总结 利用朴素贝叶斯进行文档分类 1、获取数据集 下载数据集&#xff0c;获取到一些邮件文档。其中ha…

贝叶斯算法:垃圾邮件过滤

准备 100封邮件&#xff0c;50封垃圾邮件和50封正常邮件参考 : 贝叶斯算法原理 程序过程解释 垃圾邮件分类的数学基础是贝叶斯推断(bayesian inference)。整个程序过程主要有以下几个部分构成&#xff1a; step 1 : 提取邮件并处理 1、使用 TDirectory.GetFiles(xPat…

毕业设计-基于深度学习的垃圾邮件过滤系统的设计与实现

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

机器学习:朴素贝叶斯算法与垃圾邮件过滤

简介 贝叶斯算法是由英国数学家托马斯贝叶斯提出的&#xff0c;这个算法的提出是为了解决“逆向概率”的问题。首先我们先来解释下正向概率与逆向概率的含义&#xff1a; 正向概率&#xff1a;假设一个箱子里有5个黄色球和5个白色球&#xff0c;随机从箱子里拿出一个球&#…

朴素贝叶斯算法--垃圾邮件过滤

文章目录 一、朴素贝叶斯概述1、贝叶斯决策理论2、条件概率3、朴素贝叶斯4、朴素贝叶斯一般过程 二、朴素贝叶斯算法--垃圾邮件1、准备数据&#xff1a;从文本中构建词向量2、训练算法&#xff1a;从词向量计算概率3、测试算法&#xff1a;根据现实情况修改分类器5、垃圾邮件分…

机器学习-朴素贝叶斯过滤垃圾邮件

一、朴素贝叶斯实现垃圾邮件分类的原理 什么是朴素贝叶斯算法&#xff1a;用贝叶斯定理来预测一个未知类别的样本属于各个类别的可能性,选择可能性最大的一个类别作为该样本的最终类别。 用这个算法处理垃圾邮件就可以理解为&#xff1a;用贝叶斯定理来预测一封由若干个单词组成…

机器学习项目(一)——垃圾邮件的过滤技术

一、垃圾邮件过滤技术项目需求与设计方案 二、数据的内容分析 &#xff08;1、是否为垃圾邮件的标签&#xff0c;spam——是垃圾邮件&#xff1b;ham——不是垃圾邮件&#xff09; &#xff08;2、邮件的内容分析——主要包含&#xff1a;发件人、收件人、发件时间以及邮件的内…