计算在贝叶斯垃圾邮件过滤器中令牌成为垃圾邮件的概率

Wal*_*ssa 8 c# algorithm spam-prevention bayesian

我最近编写了一个贝叶斯垃圾邮件过滤器,我使用了Paul Graham的文章Plan for Spam,在C#中实现了它,我在codeproject上找到了创建自己的过滤器的参考.

我刚刚注意到CodeProject上的实现使用了唯一令牌的总数来计算令牌成为垃圾邮件的概率(例如,如果火腿语料库总共包含10000个令牌但是1500个unqiue令牌,则1500用于计算概率为ngood ),但在我的实现中,我使用了Paul Graham的文章中提到的帖子数量,这让我想知道哪一个在计算概率方面应该更好:

  1. 帖子数(如Paul Graham的文章中所述)
  2. 总唯一令牌数(在codeproject上的实现中使用)
  3. 总令牌数
  4. 包含令牌总数的总数(即那些b + g> = 5的令牌)
  5. 总计唯一包括令牌数

Sim*_*rim 0

您可以更改代码以使用其他方法吗?然后您可以使用不同的数据集进行测试,并发布结果。