2010-03-30 30 views

回答

6

这并不容易,需要有一些理论/数学/统计背景。它被称为贝叶斯过滤,它只是其中一种方法,但效果很好。

您可以在维基百科here上有一个介绍和一些背景,但它是一个在互联网上大大覆盖的主题,只是搜索(我也认为这是在StackOverflow上)。

5

可能最简单的方法就是利用现有的API。 Akismet有bindings for Java,这是默认情况下Wordpress在其博客上使用的内容。哦,它是免费的,免费的开源软件。

3

您可以通过SpamAssassin来管它,看看返回值是什么。

这是一个古怪的想法:将文本作为电子邮件发送到Gmail帐户。然后使用IMAP查看它是否结束在收件箱或垃圾邮件文件夹中。

+0

+1,因为它是一个GMail非常有趣的用例。 – Cesar 2010-03-30 21:04:01

+2

在将Gmail用作应用程序的垃圾邮件过滤器之前,谨慎**仔细阅读Gmail的“服务条款”。 – 2010-03-30 22:18:45

+0

+1 SpamAssassin看上去很有前途......不是java,但我可能能够使用它 – Doug 2010-03-30 22:31:12

1

Akismet为你提供所有的数学和逻辑,我认为是避免垃圾邮件的最佳方式。

您只需要ask for you key与您的网站相关。有免费(自愿支付)的方式。

通过它的一个正常呼叫Java API就是这样,我使用commentCheck为你正在检查的那段文字。

Akismet akismet = new Akismet(AKISMET_KEY, SITE); 
    return akismet.commentCheck(
     request.getRemoteAddr(), 
     request.getHeader("User-agent"), 
     request.getHeader("referer"), 
     "", //permalink 
     "comment", //comment type 
     "", //author 
     "", //email 
     "", 
     commentText, //Text to check 
     request.getParameterMap()); 

如果此调用返回true,则认为它是垃圾邮件。

相关问题