SPAM、Bayesian和中文 3

| 0 comments 2009-03-10 19:29:05

用PHP的话,将Naive Bayes Classifier算法集成进你的程序的办法有三。

1. 自行实现算法

想完全自己动手的话,可以参考IBM developerWorks上的这篇“Implement Bayesian inference using PHP”的教程,自己实现所有的计算和分类过程。因为这个教程写得非常详细且深入浅出,自行编码的话倒也不算很难。

2. 使用“PHP Naive Bayesian Filter”及其CakePHP实现

“PHP Naive Bayesian Filter”是一名法国的PHP爱好者写的过滤器,由介绍可知这个过滤器是以Perl的Algorithm::NaiveBayes CPAN为基础改写的,我Google发现这个过滤器的人气还挺旺的,相关的讨论也不少。

值得一提的是,有人将这一过滤器集成进了CakePHP!这就是Lilblogs项目。项目的开发者写了一系列的models、controllers和components,把上述“PHP Naive Bayesian Filter”重新包装了一遍。我试用并研究了一段时间,效果还不错,就是代码风格我不喜欢,所以最终没有在LT中使用Lilblogs的算法。

使用“b8”-我的选择

“b8”同样是一个开源的Bayesian算法。和Lilblogs的做法不同,b8是一个完整的过滤器,它不仅实现了分类算法,还编写了数据存储部分的代码。有趣的是作者声称b8的分类算法对blog上的评论做了特别的优化,而不是像其它算法一样更多地考虑分类电子邮件。不过我数学不好,没看出来它的特殊之处到底在哪里。

b8自带了三种存储引擎,首选的是轻量的Berkeley DB,这是其作者一再推荐的引擎,如果你用别的引擎的话,b8会不断地提示让你用Berkeley DB。另外两种分别是MySQL和SQLite。

b8的文档比较全面和详细,推荐阅读。

下文说说如何在CakePHP中使用b8。

Anything to say? Come on!

(Support Gravatar)
  • angel.gif
  • glasses.gif
  • hum.gif
  • sad.gif
  • caresse.gif
  • sick.gif
  • angry.gif
  • zip.gif
  • gun.gif
  • emu.gif
  • big_smile.gif
  • clin_oeil.gif
  • devil.gif
  • wahou.gif
  • confus.gif
  • mad.gif
  • larme.gif
  • wave.gif
  • scare.gif
  • lang_1.gif
  • ask.gif
  • xd.gif
  • eye_up.gif
  • mdr.gif
  • smile_1.gif
  • lang_2.gif
  • zzz.gif
  • bad_smile.gif
  • jet.gif
  • smile_2.gif
  • love.gif

About

我在厦门拍的照片

丁宇(Felix Ding),电脑Geek,狂热的爱书和爱乐分子,99年迷上网页设计,并从此一发不可收。现在在上海做用户体验/产品设计咨询。Email: felixding[AT]gmail.com。

订阅到RSS