轻量级贝叶斯过滤器,用于更大的数据集

时间:2012-01-25 14:38:55

标签: php mahout bayesian spamassassin

我想为我的CMS创建另一个垃圾邮件检测。目前我确实看到三个选项:

  1. 使用简单的php类并在MySQL中存储令牌
  2. 安装spamassassin并使用php-connector
  3. 像mahout这样的大事
  4. 我不喜欢MySQL的方法,因为我担心它随着时间的推移会变得非常大并且会降低整个系统的性能。 spamassassin方法似乎更具吸引力,但互联网上的每个人都在写SA规则专注于邮件和标题,这不是一个理想的方式。最后但并非最不重要的是我知道mahout,但我担心它可能有点太大并且会产生大量的管理开销。

    是否有可以在Linux服务器上运行并从php访问的小巧高效的东西?

1 个答案:

答案 0 :(得分:1)

最简单的方法是MySQL中的令牌,但我不知道它有多好用。

如果您想将文本分类为span / not-spam类别,我认为Mahout是一个不错的选择。它是为BigData构建的,因此,如果你想要map / reduce,它需要一个Hadoop设置 - 但是你也可以使用一个轻量级替代方案: LogisticRegression 算法亨利马乌。

有一个 ModelSerializer 类,可以将您训练过的模型以二进制格式存储在硬盘上或其他地方 - 所以你不必设置Hadoop。

你可以尝试:

<dependency>
   <groupId>org.apache.mahout</groupId>
   <artifactId>mahout-examples</artifactId>
   <version>0.6</version>
</dependency>

您可以使用以下类作为问题的代码示例:

org.apache.mahout.classifier.sgd.TrainNewsGroups

Here是关于网络上Mahout的更多资源。

因此,要从PHP访问它,您可以使用Java或只是命令行界面构建一个小型RESTful Web服务。

希望这有点帮助。