我想知道是否有针对垃圾邮件和文本分类的贝叶斯过滤的任何良好和干净的面向对象编程(OOP)实现?这仅用于学习目的。
我绝对推荐Weka这是一个用Java编写的开源数据挖掘软件:
Weka是用于数据挖掘任务的机器学习算法的集合。算法可以直接应用于数据集,也可以从您自己的Java代码调用。 Weka包含用于数据预处理,分类,回归,聚类,关联规则和可视化的工具。它也非常适合开发新的机器学习方案。
如上所述,它附带了一堆不同的分类器,如SVM,Winnow,C4.5,Naive Bayes(当然)等等(参见API doc)。请注意,已知许多分类器在垃圾邮件检测或文本分类领域具有比Naive Bayes更好的性能。
此外Weka带给你一个非常powerful GUI ...
查看Programming Collective Intelligence的第6章
也许https://ci-bayes.dev.java.net/或http://www.cs.cmu.edu/~javabayes/Home/node2.html?
我也没玩过它。
以下是C#中的贝叶斯过滤实现:A Naive Bayesian Spam Filter for C#(托管在CodeProject上)。
nBayes - CodePlex上托管的另一个C#实现
在法语,但你应该能够找到下载链接:) PHP Naive Bayesian Filter