概述
现在贝叶斯已经广泛应用了,海难搜救、生物医药、疾病诊断、邮件过滤、文本分类、侦破案件、工业生产等很多方面。
我们机会每天都会收到类似以下的垃圾短信/邮件:
“XX公司优惠,商品打折,全场八折,返利多少钱”
“金融公司,XX理财产品,XX保险”
“招聘兼职,工资日结”
诸如此类的垃圾邮件,铺天盖地、没完没了的发。我们能不能通过一个算法自动的识别出这些垃圾邮件呢?贝叶斯公式就很好用, 下面我们来一步步的讲如果利用贝叶斯公式解决垃圾邮件。
1、进行中文分词
例如把“晚上在公司聚餐”,进行中文分词会变成:“晚上/ 在/ 公司/ 聚餐”四个单词。常用的中文分词库有jieba等分词工具。
2、分词后去掉停用词
汉语去掉一些“是、在”等之类停用词之后,并不能明显影响句子表达的信息,反而能提高计算速度和准确率。比如“晚上在公司聚餐 ”把“在”去掉之后对句子的影响就有限。常用的停用词也有字典
3、构建词向量
把所有的词语聚起来并去重,形成一个全部的词的集合。然后,根据单词是否出现在每个里面,构建每个邮件的词向量。
4、计算分类概率
根据贝叶斯公式
设为垃圾邮件,为正常邮件; 为待分类的邮件, 按照贝叶斯算法我们需要求出邮件为垃圾邮件的概率 和为正常邮件的概率,二分类里面最大的概率作为推测的分类。
然而,事情往往没有这么容易, 邮件A可能在我们的已知分类库没有出现过,所以很难求出和。事情进行到这里仿佛陷入了僵局。。。。让我们在梳理一下思绪,我们刚刚把邮件通过分词都向量化了,邮件可以表示为一个的特征, 就是说事件是由若干个特征表示,如果特征彼此独立而都有相等的重要性,那么的每一项都可以通过已知的条件计算出来。这就是传说的朴素贝叶斯分类器(Naive Bayes classifiers),naive的英文意思是“幼稚的; 天真的; 单纯的”。我们把汉语中每个单词出现想象成“独立的和同等重要的”,这件事情确实够“天真的”,但是当我们天真一回后,通过结果你会发现这种“天真”反而很有用。
再来回顾公式
我们会发现分母都有, 所以我只需要比较,求出最大的就可以认为是我们预测出来的分类。
最后
以上就是平常泥猴桃为你收集整理的贝叶斯应用--垃圾短信/邮件过滤的全部内容,希望文章能够帮你解决贝叶斯应用--垃圾短信/邮件过滤所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复