Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c (目标-)C中的垃圾邮件检测_Objective C_Algorithm_Spam Prevention - Fatal编程技术网

Objective c (目标-)C中的垃圾邮件检测

Objective c (目标-)C中的垃圾邮件检测,objective-c,algorithm,spam-prevention,Objective C,Algorithm,Spam Prevention,我目前正在编写一个iPhone应用程序,它从用户那里获取一些数据并上传到服务器。上传的数据将显示给同一程序的其他用户(还有更多内容,但为了保持想法简单…)。上传的数据基本上只有三个字符串:一个名称(最多50个字符)、一个标题(最多50个字符)和一些文本(几乎无限个字符)。我需要的基本上是一个函数、服务或算法,它可以检测数据输入的有效性。它必须能够检测一系列重复字符、某些“非法”单词、异常空格等,所以我的问题是;是否有C或Objective-C库(内置或开源)用于此类数据验证,或者,我将如何进行此

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

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

好:

坏的:

我知道在很多情况下采取预防措施是很困难的,但是这个算法/库只能过滤最糟糕的垃圾邮件。在最终提交数据库之前,我还将查看数据,但当然,垃圾邮件越少,我就越容易得到它

你的, 本

编辑:我最“流利”的语言是objective-C,但我在C方面也做得很好,我有PHP和JAVA的知识。其他语言的库/示例对我来说可能很难理解,并且“翻译”成有效的iPhone语言


编辑:我不是在寻找过于复杂的东西。对我来说,这只是一个简单的粗切方法。

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

您看到了吗?它有一个(php、ruby、perl等)与Mollom服务器通信,以确定条目的垃圾邮件。将其中一个转换为Objective-C并不困难。

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

  • 检查文本是否为空,并确认不是所有空格
  • 检查长度,我至少使用3个字符
  • 检查一系列匹配字符,例如!!!!!!我只使用3个
  • 检查长度超过15个字符的单词。e、 g.lakævndsaklæfhadsæhdsjka
  • 将文本的副本转换为小写,并在一本坏词词典中查找
  • 您可以通过使用可疑字符(例如%^[] 此外,您还可以编译一个不应相邻使用的字符列表,例如fd、gf、kp、yt、vnd
    此时,您需要通过添加到算法来实现自动化。这意味着算法需要理解一些语法,整个过程的强度将开始增加。在这一点上,其他任何事情都超出了我的理解。

    是不是只有我认为好的数据看起来像垃圾邮件?好吧,我只是把虚拟数据放进去。。。坏的东西是我真正想要检测的。难道没有人知道简单的方法来去除最坏的东西,比如重复的字符和文本与数字的奇怪混合吗?Mollom看起来很有趣,但考虑到我是一个最不喜欢发布免费应用程序的人,它也相当昂贵。对于免费服务,他能免费得到吗?如果我在运行一项免费服务,我愿意捐赠计算机时间和带宽,但付钱给第三方以防止故意破坏会让我感到不安。我还想看看Akismet——它在过去对我很有效。同样的商业许可考虑。Akismet看起来很酷。我必须将其中一个实现移植到C(这可能需要相当长的时间),但考虑到我可能每月赚不到500美元,它可能是可用的。
    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"