您的位置:首页 > 编程语言

集体智慧编程学习笔记之文档过滤

2015-04-09 11:15 337 查看

过滤垃圾信息

早期是基于规则的分类器

使用时有人事先设计好一组规则,用以指明某条信息是否属于垃圾信息

存在问题:垃圾信息制造者在知道了所有规则以后,会使行为更加隐蔽;是否被当作垃圾信息很大程度上因其所面对的读者和张贴位置的不同而不同。

文档和单词

分类器利用某些特征对不同的内容项进行分类

特征:指任何可以用来判断内容中具备或缺失的东西

文档分类:内容即是文档,特征是文档中的单词

如何选择特征至关重要

对分类器进行训练

从极为不确定的状态开始,随着分类器不断了解到哪些特征对于分类而言更为重要,其确定性也在逐渐地增加

计算概率

条件概率:对于一个给定的分类,某个单词出现的概率

从一个合理的推测开始:

朴素分类器

整篇文档属于某个分类的概率:求出文档中各个单词在文档中出现的概率,然后将各个单词的概率组合。

朴素贝叶斯分类器:朴素是指假设将要被组合的各个概率是彼此独立的,即一个单词在属于某个指定分类的文档中出现的概率,与其他单词出现于该分类的概率是不相关的。

优点:在不考虑假设的潜在缺陷时,是一种非常有效的文档分类方法。

缺点:这种独立性假设会使其得到错误的结果。

整篇文档的概率

整篇文档属于给定分类的概率:Pr(Document | Category)

方法:通过将所有的概率相乘,计算出总的概率值。

对文档分类:求Pr(Category | Document ),即对于一篇给定的文档,求它属于某个分类的概率是多少。

贝叶斯定理简介

贝叶斯定理:Pr(A|B)=Pr(B|A)*Pr(A)/Pr(B)

在本例中:Pr(Category | Document )=Pr(Document | Category)*Pr(Category)/Pr(Document)

Pr(Category)是随机选择一篇文档属于该分类的概率,即属于该分类的文档数除以文档的总数。

Pr(Document):不论计算的是哪个分类,Pr(Document)的值都是一样的,其对结果所产生的影响也完全一样,所以可以忽略该项的计算。

选择分类

最简单方法:计算被考查内容在每个不同分类中的概率,然后选择概率最大的分类

实际:无法将各个分类同等看待,不知道答案比分类给概率值稍大的好一些

举例:垃圾信息过滤中,避免将普通邮件错当成垃圾邮件要比截获每一封垃圾邮件更为重要

解决办法:为每个分类定义一个最小的阈值。

费舍尔方法

与朴素贝叶斯过滤利用特征概率来计算整篇文档的概率不同

为文档中的每个特征都求得了分类的概率

将这些概率组合起来

并判断其是否可能构成一个随机集合

该方法能够返回每个分类的概率,这些概率可以进行比较

针对特征的分类概率

Pr(Category | feature)=(具有指定特征的属于某分类的文档数)/(具有指定特征的文档总数)

将各概率值组合起来

对内容项进行分类

(后续TODO)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: