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

时间:2009-12-04 16:32:27

标签: objective-c algorithm spam-prevention

我正在编写一个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"

我知道对这么多案例采取预防措施将很困难,但是这个算法/​​库只需要过滤最糟糕的垃圾邮件。我还将在最终数据库提交之前查看数据,但当然垃圾邮件越少,我就越容易获得。

此致, BEN。

编辑:我最“流利”的语言是客观C语言,但我在C语言方面也做得很好,而且我对PHP和JAVA有所了解。我可能很难理解其他语言的库/示例,并将其“翻译”为有效的iPhone语言。

编辑编辑:我不是在寻找过于复杂的东西。只是一种简单的方法让我做粗剪。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

你见过Mollom吗?它有一个bunch of developer libraries(php,ruby,perl等)与Mollom服务器通信以确定条目的垃圾邮件。将其中一个翻译成Objective-C并不难。

答案 2 :(得分:1)

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

  1. 检查文本是否为空并验证它不是所有空格
  2. 检查长度,我使用至少3个字符。
  3. 检查一系列匹配字符,例如!!!!!!我的使用时间不超过3个。
  4. 检查超过15个字符的单词。例如lakævndsaklæfhadsæhdsjka
  5. 将文本副本转换为小写并运行不良单词词典
  6. 您可以通过阻止带有可疑字符的文字来添加此内容,例如%^ [] 另外,你可以编译一个不应该彼此相邻的字符列表,例如: fd,gf,kp,yt,vnd 此时,您需要通过添加算法进行自动化。这意味着算法需要理解一些语法,整个过程将开始在强度上倍增。在这一点上,任何其他事情都无法理解。