我目前正在继承我继承的PHP网站。它包含一个评论功能,当前评论数据库中包含一堆垃圾评论,业主希望将其删除。
垃圾评论通常包括我目前正在匹配和删除的原始HTML或BBCode网址(评论不允许/呈现HTML),评论和名称与典型的关键字(免费,购买,优惠券,贷款,cialis,伟哥等)和随意的废话,一个例子:
他们将与酒店交叉核对。经过长时间的讨论,她絮絮叨叨 说有关预订的有关人员离开了酒店的工作 现在我可以获得备用酒店。我特意订了这个 付了这么多钱之后就在海滩上的酒店但是我 提供潘吉姆市的备用酒店,从那里到达 海滩需要45-60分钟左右,还有入住的乐趣 在我的家人的海滩上。我做出妥协的方式 在Panjim的新酒店入住。但是在我入住新酒店时28日 皇家帕克海滩度假村我惊呆了,看到所谓的3州 星级酒店。酒店附近没有提到的地位 卖包装。酒店质量完全低档。它更好 与挖出的三级小标准小镇旅馆相匹配 入口,便宜地完成了接待区,臭气熏天的房间和 浴室,烧窗帘,劣质家具,接下来正在建设中 到我的房间,破旧的浴室固定装置,脏地板,又脏又潮湿 床单和整体不好的感觉。[我有所有照片的证明]我 立即通知我的旅行状态的酒店,并希望 替代酒店,但让我的旅行“继续告诉我等待他们 将调查它。因为我的生病了,立即需要休息 我别无选择,只能在这家酒店办理入住手续。同时我还在继续 把Makemytrip叫了好几个小时但是有点好用。这浪费了一整个 最后,我安排了一个新的正版四星级酒店房间租金 是卢比。 5500 / - 每晚(远低于7211卢比/ - 预订此酒店 通过我的旅行。我在2012年1月28日通知MakeMy旅行取消我的 预订并全额退款。还寄给他们一封邮件 这方面。我仍在为他们的积极回应而努力,但我是 最不希望得到它。所以现在我正在接近法庭以获得我的 会费和赔偿金.Arvinder
我一直在做字符串匹配并删除明显的术语,但它有点单调乏味。如果有人有一个有效的方法来做到这一点,我真的很想听到它。
答案 0 :(得分:0)
由于您尚未定义垃圾邮件包含的内容,因此很难给出更具体的示例,但我会考虑使用与特定关键字匹配的正则表达式,数据中的模式
DELETE FROM `table` WHERE `field` REGEXP 'vigra|spam|example'
编辑:同样从您更新的示例中,您可以将垃圾邮件标记为具有特定字符长度:
DELETE FROM `table`
WHERE `field` REGEXP 'vigra|spam|example'
OR LENGTH(`field`) > 500
... etc
答案 1 :(得分:0)
我对我关注的其中一个应用程序有类似的问题。我称那些提供垃圾数据“小丑”的人,并且正在收集一套识别潜在小丑的规则。初始规则集非常基本(可能与您现在拥有的关键字类似)。根据我自己的观察和同事的提示,这套规则随着时间的推移而不断扩大。
注意我声明我识别潜在的小丑。可能包含小丑数据的表格会得到一个列IsClown,它可以代表“未经检查”,“潜在的小丑”,“不是小丑”,“是一个小丑”。我有一个自动过程来检查所有新数据。如果该过程与一个或多个规则匹配,则该条目被标记为“潜在的小丑”,并且人类使用简单的UI检查条目,或者将状态移动到“不是小丑”或“是小丑”。
这是否适合您取决于可以定义规则的程度以及您正在考虑的数据量。它对我有用,所以我想分享。