代码之家  ›  专栏  ›  技术社区  ›  Benjamin Egelund-Müller

垃圾邮件检测(目标-)C

  •  1
  • Benjamin Egelund-Müller  · 技术社区  · 15 年前

    我目前正在编写一个iPhone应用程序,它从用户那里获取一些数据并将其上传到服务器上。上传的数据将显示给同一个程序的其他用户(其中有更多的数据,但保持简单的想法…)。上传的数据基本上只有三个字符串:一个名称(最多50个字符)、一个标题(最多50个字符)和一些文本(实际上不受限制的字符)。我需要的基本上是一个可以检测数据输入有效性的函数、服务或算法。它必须能够检测到一系列重复的字符、某些“非法”单词、异常的空格等。所以我的问题是:是否有用于这种数据验证的C或Objective-C库(内置或开放源代码),或者,我该如何进行这种检查?

    以下是好数据和坏数据的两个示例:

    好:

    Name: "John Aaron Smith"  
    Title: "Why am I still here?"  
    Text: "Can anybody please help me? I'm feeling lonely!"
    

    坏的:

    Name: "f**k you, kldsanfklds"   
    Title: "Only $99. Buy Now. Only $99"  
    Text: "ndsaklgnvds lakævndsaklæfhadsæhdsjka fhdskjafhdskj lafhsdkhf. €#&/ #&()(/&%& ># €%€#% €#& hidosæahviædshvidshfiodsa. adsifjDSILFJIDSH \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
    

    我知道对这么多情况采取预防措施是困难的,但是这个算法/库只需要过滤最坏的垃圾邮件。我也会在最终提交数据库之前查看数据,但当然垃圾邮件越少,我就越容易得到它。

    你的, 本。

    编辑:我最“流利”的语言是Objto-C,但是我也用C做得很好,而且我有PHP和Java的知识。其他语言的库/示例可能很难让我理解,并“翻译”成有效的iPhone语言。

    编辑-编辑:我不是在找过于复杂的东西。只是一个简单的方法,我做粗略的削减。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Ben S    15 年前

    这是一个 very difficult 要解决的问题。我不会尝试创建自己的垃圾邮件检测,我会使用一个已经存在并具有良好声誉的解决方案,例如 SpamAssassin .

        2
  •  1
  •   Dave DeLong    15 年前

    你见过吗? Mollom ?它有一个 bunch of developer libraries (php、ruby、perl等)与mollom服务器通信以确定条目的空间。把其中一个翻译成objective-c并不难。

        3
  •  1
  •   Eddie    14 年前

    我做了一些和你想要的相似的东西,但是它是用PHP做的。我处理的所有文本都是用验证码输入的,所以我要阻止的是无用的评论垃圾邮件,类似于你的坏例子。这是我目前为止得到的,它阻止了80%的垃圾。它可能会阻止一些拼写习惯不好的人使用有效的文本,但比起手动编辑文本,我更喜欢这样。

    1. 检查文本是否不为空,并确认不是所有空格
    2. 检查长度,我至少使用3个字符。
    3. 检查匹配字符系列,例如!!!!!!!!我最多用3个。
    4. 检查超过15个字符的单词。例如Lak_vndsakl_fhads_hdsjka
    5. 将文本的副本转换为小写,并运行一个坏词字典

    您可以通过阻止带有可疑字符的文本(例如,%^[] 此外,您还可以编译一个不应相邻使用的字符列表,例如fd、gf、kp、yt、vnd。 此时,您需要通过添加到算法来实现自动化。这意味着算法需要理解一些语法,整个过程将开始增加强度。在这一点上,我无法理解其他任何事情。