【发布时间】:2011-08-13 14:16:34
【问题描述】:
我有一个 Rails 应用程序,用户可以在其中向其他用户发送消息。问题是,正是这种类型的网站吸引了许多发送虚假信息的垃圾邮件发送者。
我已经知道一些垃圾邮件服务,例如 Akismet(通过 rakismet)和 Defensio(通过 defender)。这些问题在于,它们似乎没有考虑用户已经发送的消息。我在我的网站上看到的垃圾邮件类型是用户向许多其他用户发送相同(或非常相似)的消息。因此,我希望能够与至少少数过去的邮件进行比较,以确保它们的差异足以不被视为垃圾邮件。
到目前为止,我遇到的最好的事情是 Text::Levenshtein distance 实现,它计算两个字符串之间的差异数。我想我可以计算出差异数除以字符串长度,如果它高于某个阈值,则不被视为垃圾邮件。
我遇到的另一件事是Classifier::Bayes,它可以很好地猜测某物属于什么类别。还在琢磨这个。
我觉得我可能只是在寻找错误的地方,也许已经有更好的解决方案来解决此类问题。也许我正在寻找错误的词来找到更有用的东西。
【问题讨论】:
-
我在我的网站上添加了 akismet 并发布了一篇关于它的小博文:frick-web.com/en/blog/stopping-spam-with-akismet - 也许它会对你有所帮助。
标签: ruby spam-prevention spam categorization