使用朴素贝叶斯对垃圾邮件分类_NLP入门1:朴素贝叶斯文本分类

朴素贝叶斯文本分类:

44b8408c59f78df5a5badfdf599dea66.png

以垃圾邮件分类举例:

一封邮件根据内容不同,可以被分为“垃圾邮件”和“正常邮件”。垃圾邮件内的单词可能在正常邮件里出现,而正常邮件里的单词也有可能在垃圾邮件里出现。通过朴素贝叶斯文本分类,对于给定的邮件,分别计算它属于垃圾邮件和正常邮件的概率,比较两个的概率,得出文本分类结果。

大致过程:

  1. Training: 统计出每个单词对一个邮件成为垃圾邮件/正常邮件的概率,例:P(“广告”|垃圾),P(“广告”|正常)分别代表在垃圾邮件/正常邮件里“广告”出现的概率
  2. Testing: 用统计结果做一个新的预测

贝叶斯定理来说,具体公式为:

,对于给定文本x,判断邮件属于y的概率

即:

其中:

  • P(垃圾|邮件内容)为后验概率(posterior);
  • P(邮件内容|垃圾)为似然(likelihood),表示垃圾邮件里出现垃圾内容的概率;
  • P(垃圾)为先验概率(prior),表示样本里垃圾邮件的概率;
  • P(邮件内容)(Normalization)可以不做计算,这是因为P(正常|邮件内容)的分母也为P(邮件内容),在比较两个概率时可以只比较分子

对于上述过程,将朴素贝叶斯计算过程细分:

c8689c548b99ce587fb2b178835413d9.png
  • 先验概率(prior):假设一共有10封邮件,6封正常邮件,4封垃圾邮件,P(垃圾)=0.4,P(正常)=0.6
  • 似然(likelihood):假设每封邮件里有10个单词,正常邮件里累计有10x6=60单词,垃圾邮件里有10x4=40单词;如果“广告”在垃圾邮件里出现了2次,那么P(广告|垃圾)=2/40,如果“广告”在正常邮件里出现1次,同理得P(广告|正常)=1/60,由此分别统计在各类别邮件里单词出现的概率
  • 后验概率(posterior): 假如新的邮件里有N个单词,那么应该分别计算P(垃圾|邮件内容)和P(正常|邮件内容),则:

  • 对于
    这一部分,使用
    条件独立(conditional independence)将公式简化:
    (“朴素”贝叶斯)
  • 先验概率已经计算完,由此可得分子部分的结果;
  • 计算P(正常|邮件内容)的分子部分

在上述过程中,如果一个在单词从未在样本邮件里出现过,那么它的概率为0,则会让分类不合理:

例如“链接”从未在垃圾邮件里出现,却在正常邮件里出现了1次,那么P(链接|垃圾)=0,P(链接|正常)=1/60;如果需要分类的邮件里包括“链接”,则P(垃圾|邮件内容)=0而P(正常|邮件内容)>0, 即便这封邮件实际上属于垃圾邮件,也会被分类到正常邮件中

由此可知:

  1. 很难设计出完备的词库
  2. 一些关键词出现了不一定是正常/垃圾邮件
  3. 单词也有倾向性,不可以以偏概全
  4. 需要使用平滑技术处理概率值为0的问题

加一平滑/add-one smoothing:

  • 通过分子分母分别加1和V(词库大小),保证所有概率之和为1

+V满足条件概率的合理性

同时,为了避免有过多含0-1之间小数相乘造成underflow的情况,在计算的时候会添加log

log(P1P2P3) = log(P1)+log(P2)+log(P3)

比较相对大小,因为log是递增函数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值