(一)、社区反垃圾化之文字重复率检测

(一)、社区反垃圾化之文字重复率检测

序言:

随着用户量的增长和内容化过渡化增长,总会有一些不坏好意的人在你的产品或者应用中留下一些垃圾,这些垃圾并不是传统意义的垃圾,而是指互联网上的垃圾文本、垃圾邮件、垃圾图片、垃圾媒体信息等,这些东西就像漂浮在水中的垃圾一样,一步步的破坏着产品的水质,于是于产生了反垃圾系统(进行敏感、垃圾信息的过滤系统。主要有:垃圾邮件拦截、微博广告过滤、弹幕、直播等场景),本博客将会一步步的实现一个简单的反垃圾系统雏形.

1.反垃圾流程
要进行反垃圾,首先我们需要进行了解一下基本反垃圾流程.

2.反垃圾内容检测

当我们从服务端获取到用户发送过的内容后,我们需要对其甄别是否为垃圾内容,然后决定是否放行该内容.

场景A:某BBS论坛评论区经常有用户灌水,场景内容如下:

A:今天写够15个字、哈哈哈哈哈哈哈哈哈哈哈哈哈.
B:帅哥加我v 帅哥加我v 帅哥加我v 帅哥加我v 帅哥加我v 帅哥加我v

防护分析:在目前这段文本中,含有大量的重复内容信息,达到整串文本的50%,我们可以通过字符重复率来进行判断是否为低质量或垃圾内容.

3.技术实现

1.拆解文本为字符串
2.分析字符所占比率

下面通过PHP代码获取实现了一个文字重复次数

function getStrRepeatRate($str)
{
    $strArr    = mb_str_split($str);
    return array_count_values($strArr);
}

测试文本A:今天写够15个字、哈哈哈哈哈哈哈哈哈哈哈哈哈

效果如下:

在以上21个字符中,其中“哈”字出现了13次,占全文比率:61%,我们还可以去复合字符重复最多的三个字来进行计算,占到全文的一定比率,便可以认定为低质量内容或垃圾系统.

尾:
虽然会存在一定误伤,但内容的鉴定往往还是一套组合拳,只有结合起来才能发挥最大的威力,本篇叙述的就暂且这么多啦.Happy Coding!

你可能感兴趣的:(thinkphp,php,laravel)