2010-03-30 63 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,則認爲它是垃圾郵件。

相關問題