代码之家  ›  专栏  ›  技术社区  ›  Chris

无意义文本与有意义文本的分离算法

  •  8
  • Chris  · 技术社区  · 17 年前

    我为我的一些程序提供了反馈功能。不幸的是,我忘记了加入一些垃圾邮件保护功能——这样用户就可以向我的服务器发送任何他们想要的东西——在我的服务器上,每个反馈都存储在一个巨大的数据库中。

    • 胡说八道:jfvgasdjkfahs kdlfjhasdf(人们在键盘上砸脑袋)
    • 语言我不懂

    到目前为止我所做的:

    1. 我安装了一个单词过滤器来删除任何包含糟糕语言的内容->每天600人(不要问——但外面有很多奇怪的人)

    2. 我过滤掉任何包含我语言中未使用的字母的邮件->每天400

    但每天400美元还是太多了。所以我想知道是否有人曾经处理过这样的问题,并且知道某种算法来过滤掉无意义的信息。

    任何帮助都将不胜感激!

    11 回复  |  直到 17 年前
        1
  •  12
  •   John Nilsson    17 年前

    不如只使用一些现有的贝叶斯垃圾邮件过滤器实现,而不是实现您自己的。我使用DSpam取得了很好的效果

        2
  •  12
  •   Rob Walker    17 年前

    另一种稍有不同的方法是建立一个系统,将反馈信息通过电子邮件发送到一个帐户,并使用标准的垃圾邮件过滤。你可以通过gmail把他们发送出去,让他们的过滤功能试试看。不完美,但也没有太多的努力去实现。

        3
  •  6
  •   maxaposteriori    17 年前

    如果你只是期待(或关心)英语评论,那么为什么不简单地计算上传的反馈中的有效单词数(关于某些词典)。如果数字超过某个阈值,则接受反馈。如果没有,扔掉它。这种简单的启发式方法可以通过添加字典扩展到其他语言。

        4
  •  6
  •   oglester    17 年前

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

    Better Bayesian Filtering

    Wikipedia explanation

    Some open Source

        5
  •  5
  •   Tomas Aschan    17 年前

    不久前,我的一个网站上的留言簿功能出现了垃圾邮件问题。我的解决方案就是简单地添加一点验证码,比如Q&一个字段询问用户“你是一个垃圾机器人吗?”任何包含“不”的答案(通过“不,我不是”、“不”和“一点也不是”,只是为了好玩…)都允许用户发布。。。

        6
  •  3
  •   Marius    17 年前

    最简单的方法是计算每个字母的出现次数。E是英语中最常见的字母,所以应该用得最多。您还可以检查单词和有向图的频率。看一看 here 获取最常用的英语内容列表

        7
  •  2
  •   joel.neely    17 年前

    查阅克劳德·香农和马尔可夫模型。这些导致了一种统计技术,用于评估字母组合来自特定语言源的概率。

    Here 这是普林斯顿大学的一些相关课程笔记。

        8
  •  2
  •   Norman Ramsey    17 年前

    菲德利斯·阿西斯和我一直在调整垃圾邮件过滤器 OSBF-Lua 因此,它可以轻松地适应其他应用程序,包括web应用程序。该垃圾邮件过滤器连续三年赢得TREC垃圾邮件竞赛。(我不介意吹牛,因为算法是菲德利斯的,不是我的。)

    如果你想尝试一下,我们在

    git clone http://www.cs.tufts.edu/~nr/osbf-lua-temp
    

        9
  •  0
  •   Liudvikas Bukys    17 年前

    前面关于捆绑一些垃圾邮件过滤器的答案是一个好主意。对于您的应用程序,因为您似乎得到了很多长而无意义的单词,所以最好在解析器中打开一个选项来训练bigram和trigram;否则,许多无意义的单词将被视为“以前从未见过”,这在您的案例中不是最有用的解析。

        10
  •  0
  •   Frank    17 年前

    是的,正如人们指出的,你可以看看垃圾邮件过滤器或马尔可夫模型。

    更简单的方法是计算每个响应中的不同单词,并按频率排序。如果下面这样的词不在顶部,则可能是无效文本:

    这个 , A. 在里面 , 属于 ,

    它们是任何普通英语文本中使用最频繁的单词。

        11
  •  0
  •   Jarin Udom    17 年前

    http://akismet.com/

    http://defensio.com/

    我个人更喜欢Defensio的API,但它们都工作得非常好。