我最近写了一个贝叶斯垃圾邮件过滤器,我使用Paul Graham 的文章 Plan for Spam和我在 codeproject 上找到的 C# 中的实现作为创建我自己的过滤器的参考。
我刚刚注意到 CodeProject 上的实现使用唯一令牌的总数来计算令牌成为垃圾邮件的概率(例如,如果 ham 语料库总共包含 10000 个令牌但 1500 个 unqiue 令牌,则 1500 用于计算概率为 ngood ),但在我的实现中,我使用了 Paul Graham 的文章中提到的帖子数量,这让我想知道其中哪一个在计算概率时应该更好:
- 帖子计数(如 Paul Graham 的文章中所述)
- 唯一令牌总数(在 codeproject 的实现中使用)
- 令牌总数
- 包含的令牌总数(即 b + g >= 5 的那些令牌)
- 包含的唯一令牌总数