一个没有用了的函数,检测是否有重复段落。

本文介绍了一个用于检测文本中重复段落的功能性函数,通过去除特定字符、分割文本为段落,并根据段落长度进行重复度判断,实现误伤率较低的文本重复检测。同时,提及了函数在实际应用中遇到的问题及改进策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一开始写这个函数还调试测试了很多次,但是结果还是差强人意。因为本来他的逻辑就是不对的,后来用了 similar_text替代。

功能:检测提交的文本是否有过度重复,段落对比!

其他:误伤率比较低,过滤功能不行。


/* 重复段落检测 */
public function hasRepeatLine($string)
{
    $string = str_replace(array("\t"," ","@","#","。",",",".",","),'',$string);
    //$string = str_replace("\r","\n",$string);
    $lineArr = explode("\n",$string);
    $countShort = $countMiddle = $countLong = 0;
    $arr = array();

    foreach($lineArr as $lineString)
    {
        $length = strlen( $lineString );
        if($length < 1) continue;
        if(in_array($lineString,$arr))
        {
            if($length < 13)
            {
                $countShort++;
                if($countShort > 4) return true;//5次
            } elseif($length>12 && $length < 51) {
                $countMiddle++;
                if($countMiddle > 3) return true; //4次
            } elseif($length>50 && $length < 101) {
                $countLong++;
                if($countLong > 2) return true; //3次
            } else {
                return true;
            }
        }
        $arr[] = $lineString;
    }
    return false;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值