用于从有意义的文本中分离无意义文本的算法

Chr*_*ris 8 algorithm nlp filter cpu-word spam

我为我的一些程序提供了反馈功能.不幸的是,我忘了包含某种垃圾邮件保护 - 所以用户可以将他们想要的任何内容发送到我的服务器 - 每个反馈都存储在一个巨大的数据库中.

一开始我定期检查这些反馈 - 我过滤掉了可用的和删除的垃圾.问题是:我每天收到900条反馈.只有4-5个真正有用,其他消息大多是2种类型的乱码:

  • 废话:jfvgasdjkfahs kdlfjhasdf(人们在键盘上粉碎他们的头脑)
  • 语言我不明白

到目前为止我做了什么:

  1. 我安装了一个过滤器来删除任何包含"asdf","qwer"等的反馈...... - >每天只有700个

  2. 我安装了一个文字过滤器来删除任何包含不良语言的东西 - >每天600(不要问 - 但那里有很多奇怪的人)

  3. 我过滤掉任何包含我的语言未使用的字母的消息 - >每天400

但每天400仍然太多了.所以我想知道是否有人之前已经处理过这样的问题并且知道某种算法来过滤掉无意义的消息.

真的很感激任何帮助!

Joh*_*son 12

如何使用贝叶斯垃圾邮件过滤器的一些现有实现而不是实现自己的.我在DSpam上取得了不错的成绩


Rob*_*ker 12

稍微不同的方法是设置系统以将反馈消息通过电子邮件发送到帐户并使用标准垃圾邮件过滤.你可以通过gmail发送它们并让它们过滤掉它.不完美,但也没有太多的努力来实现.

  • 哦,快速和肮脏,hackish和某种程度上彻底恶心......我喜欢它!:d (3认同)
  • 但Gmail真的会过滤掉一条说"qwerty"的消息吗?即便如此,他们也会查看发件人,主题,邮件服务器等等,这对他的申请来说都是一样的(他们都是从这一个表单发送到Gmail帐户). (2认同)
  • 如果此方案中的"发件人"地址始终相同,那么Gmail就有可能决定*该地址是垃圾邮件发送者*,因为它会发送大量垃圾邮件. (2认同)

max*_*ori 6

如果您只是期待(或关心)英语评论,那么为什么不在上传的反馈中简单地计算有效单词的数量(相对于某些词典).如果数字超过某个阈值,请接受反馈.如果没有,请将其丢弃.这个简单的启发式方法可以通过添加它们的词典扩展到其他语言.


Gre*_*gle 6

您可以尝试许多垃圾邮件过滤器使用的贝叶斯算法.

更好的贝叶斯过滤

维基百科的解释

一些开源


Tom*_*han 5

我在我的一个网站(很长时间)的留言簿功能中遇到了垃圾邮件问题.我的解决方案只是添加一个类似验证码的Q&A字段,询问用户"你是垃圾邮件机器人吗?" 任何包含单词"no"的答案(通过"不,我不是","nope"和"根本没有",只是为了好玩......)允许用户发布...

我选择不使用验证码的原因很简单,我的用户想要对网站有一种更"舒适"的感觉,并且验证码感觉太正式了.这更个人=)