atitti文本分类 以及垃圾邮件判断原理以及贝叶斯算法的应用解决方案

attilaxAti attilaxAti     2022-08-09     440

关键词:

 

Atitti 文本分类  以及 垃圾邮件 判断原理 以及贝叶斯算法的应用解决方案

 

1.1. 七、什么是贝叶斯过滤器?1

1.2. 八、建立历史资料库2

1.3. 十、联合概率的计算3

1.4. 十一、最终的计算公式3

1.5. 。这时我们还需要一个用于比较的门槛值。Paul Graham的门槛值是0.9,概率大于0.94

 

 

1.1. 七、什么是贝叶斯过滤器?

垃圾邮件是一种令人头痛的顽症,困扰着所有的互联网用户。

正确识别垃圾邮件的技术难度非常大。传统的垃圾邮件过滤方法,主要有"关键词法"和"校验码法"等。前者的过滤依据是特定的词语;后者则是计算邮件文本的校验码,再与已知的垃圾邮件进行对比。它们的识别效果都不理想,而且很容易规避。

2002年,Paul Graham提出使用"贝叶斯推断"过滤垃圾邮件。他说,这样做的效果,好得不可思议。1000封垃圾邮件可以过滤掉995封,且没有一个误判。

另外,这种过滤器还具有自我学习的功能,会根据新收到的邮件,不断调整。收到的垃圾邮件越多,它的准确率就越高。

1.2. 八、建立历史资料库

贝叶斯过滤器是一种统计学过滤器,建立在已有的统计结果之上。所以,我们必须预先提供两组已经识别好的邮件,一组是正常邮件,另一组是垃圾邮件。

我们用这两组邮件,对过滤器进行"训练"。这两组邮件的规模越大,训练效果就越好。Paul Graham使用的邮件规模,是正常邮件和垃圾邮件各4000封。

"训练"过程很简单。首先,解析所有邮件,提取每一个词。然后,计算每个词语在正常邮件和垃圾邮件中的出现频率。比如,我们假定"sex"这个词,在4000封垃圾邮件中,有200封包含这个词,那么它的出现频率就是5%;而在4000封正常邮件中,只有2封包含这个词,那么出现频率就是0.05%。(【注释】如果某个词只出现在垃圾邮件中,Paul Graham就假定,它在正常邮件的出现频率是1%,反之亦然。这样做是为了避免概率为0。随着邮件数量的增加,计算结果会自动调整。)

有了这个初步的统计结果,过滤器就可以投入使用了。

 

1.3. 十、联合概率的计算

做完上面一步,请问我们能否得出结论,这封新邮件就是垃圾邮件?

回答是不能。因为一封邮件包含很多词语,一些词语(比如sex)说这是垃圾邮件,另一些说这不是。你怎么知道以哪个词为准?

Paul Graham的做法是,选出这封信中P(S|W)最高的15个词,计算它们的联合概率

所谓联合概率,就是指在多个事件发生的情况下,另一个事件发生概率有多大。比如,已知W1和W2是两个不同的词语,它们都出现在某封电子邮件之中,那么这封邮件是垃圾邮件的概率,就是联合概率。

 

 

1.4. 十一、最终的计算公式

将上面的公式扩展到15个词的情况,就得到了最终的概率计算公式:

P=1-(1-p1)*(1-p2)*(1-p3);

一封邮件是不是垃圾邮件,就用这个式子进行计算

1.5. 。这时我们还需要一个用于比较的门槛值。Paul Graham的门槛值是0.9,概率大于0.9

表示15个词联合认定,这封邮件有90%以上的可能属于垃圾邮件;概率小于0.9,就表示是正常邮件。

有了这个公式以后,一封正常的信件即使出现sex这个词,也不会被认定为垃圾邮件了。

 

参考资料

贝叶斯推断及其互联网应用(二):过滤垃圾邮件 - 阮一峰的网络日志.html

Atitit 贝叶斯算法的原理以及垃圾邮件分类的原理

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

 

Atiend

 

 

 

如何获得垃圾邮件中的突出词 - 非垃圾邮件分类器?

...类器将其分类为垃圾邮件。例如,如果一封邮件包含以下文本:Get10000dollarsfreebyclic 查看详情

基于卷积神经网络(cnn)的中文垃圾邮件检测

前言跳过废话,直接看正文文本分类任务是一个经久不衰的课题,其应用包括垃圾邮件检测、情感分析等。传统机器学习的做法是先进行特征工程,构建出特征向量后,再将特征向量输入各种分类模型(贝叶斯、SVM、神经网络等... 查看详情

垃圾邮件分类 - 机器学习

...圾邮件,例如trec2005、spamassasin或enron-spam。然后,我进行文本预处理 查看详情

使用朴素贝叶斯分类器过滤垃圾邮件

1.从文本中构建词向量将每个文本用python分割成单词,构建成词向量,这里首先需要一个语料库,为了简化我们直接从所给文本中抽出所有出现的单词构成一个词库。2.利用词向量计算概率p(x|y)Whenweattempttoclassifyadocument,wemultiplyalot... 查看详情

关于使用独立数据集通过 weka 验证文本分类的问题

】关于使用独立数据集通过weka验证文本分类的问题【英文标题】:questionsaboutusingastandalonedatasettovalidatetextclassificationwithweka【发布时间】:2012-08-2416:50:43【问题描述】:我正在尝试使用weka对垃圾邮件和非垃圾邮件进行分类。将100... 查看详情

如何使用 libsvm 进行文本分类?

】如何使用libsvm进行文本分类?【英文标题】:Howtouselibsvmfortextclassification?【发布时间】:2011-09-0413:20:19【问题描述】:我想用SVM编写一个垃圾邮件过滤程序,我选择libsvm作为工具。我收到了1000封好邮件和1000封垃圾邮件,然后... 查看详情

atitti css  transition animation differ区别

  Atitti css  transition Animation differ区别 1.1.transition的优点在于简单易用,但是它有几个很大的局限。  11.2.js动态改变style内容,样式覆盖11.3.Velocity和GSAP2  1.1. tran 查看详情

垃圾邮件分类(代码片段)

...:将先验数据按一定比例进行拆分。4.提取数据特征,将文本解析为词向量。5.训练模型:建立模型,用训练数据训练模型。即根据训练样本集,计算词项出现的概率P(xi|y),后得到各类下词汇出现概率的向量。6.测试模型:用测... 查看详情

13-垃圾邮件分类2(代码片段)

...分性不大,就用IDF来降低该词的权重。TF-IDF“词频-逆文本频率指数”TF-IDF(TermFrequency-InverseDocumentFrequency)词频:TF=词在文档中出现的次数/文档中总词数逆文档频率:IDF=log[(语料库中的文档总数/(包含词条w的文档数+1)],... 查看详情

朴素贝叶斯应用:垃圾邮件分类(代码片段)

...:将先验数据按一定比例进行拆分。4.提取数据特征,将文本解析为词向量。5.训练模型:建立模型,用训练数据训练模型。即根据训练样本集,计算词项出现的概率P(xi|y),后得到各类下词汇出现概率的向量。 6.测试模型:... 查看详情

机器学习:13-垃圾邮件分类2

1.读取2.数据预处理3.数据划分—训练集和测试集数据划分fromsklearn.model_selectionimporttrain_test_splitx_train,x_test,y_train,y_test=train_test_split(data,target,test_size=0.2,random_state=0,stratify=y_train)4.文本特征提取skl 查看详情

13-垃圾邮件分类2(代码片段)

1.读取2.数据预处理3.数据划分—训练集和测试集数据划分fromsklearn.model_selectionimporttrain_test_splitx_train,x_test,y_train,y_test=train_test_split(data,target,test_size=0.2,random_state=0,stratify=y_train)4.文本特征提取skl 查看详情

朴素贝叶斯应用:垃圾邮件分类

...:将先验数据按一定比例进行拆分。4.提取数据特征,将文本解析为词向量。5.训练模型:建立模型,用训练数据训练模型。即根据训练样本集,计算词项出现的概率P(xi|y),后得到各类下词汇出现概率的向量。6.测试模型:用测... 查看详情

朴素贝叶斯应用:垃圾邮件分类

...:将先验数据按一定比例进行拆分。4.提取数据特征,将文本解析为词向量。5.训练模型:建立模型,用训练数据训练模型。即根据训练样本集,计算词项出现的概率P(xi|y),后得到各类下词汇出现概率的向量。6.测试模型:用测... 查看详情

朴素贝叶斯应用:垃圾邮件分类

...:将先验数据按一定比例进行拆分。4.提取数据特征,将文本解析为词向量。5.训练模型:建立模型,用训练数据训练模型。即根据训练样本集,计算词项出现的概率P(xi|y),后得到各类下词汇出现概率的向量。6.测试模型:用测... 查看详情

分类模型的评价指标fscore

分类模型的评价指标Fscore小书匠 深度学习 分类方法常用的评估模型好坏的方法.0.预设问题假设我现在有一个二分类任务,是分析100封邮件是否是垃圾邮件,其中不是垃圾邮件有65封,是垃圾邮件有35封.模型最终给邮件的结论... 查看详情

使用 naive-bayes 检测垃圾邮件

...算法。这是我尝试实现算法的方式:在训练集中,我计算文本中的特定单词出现在垃圾邮件文本中的频率,以及它出现在非垃圾邮件文本中的频率。我还存储了训练期间检查的垃圾邮件和非垃圾邮件的总 查看详情

朴素贝叶斯应用:垃圾邮件分类(代码片段)

...:将先验数据按一定比例进行拆分。4.提取数据特征,将文本解析为词向量。5.训练模型:建立模型,用训练数据训练模型。即根据训练样本集,计算词项出现的概率P(xi|y),后得到各类下词汇出现概率的向量。6.测试模型:用测... 查看详情