php自动获取关键字的方法

yipeiwu_com6年前PHP代码库

本文实例讲述了php自动获取关键字的方法。分享给大家供大家参考。

具体实现方法如下:

复制代码 代码如下:
$mincipin=5;//最小词频
$minlen=4;//关键字最小长度
tiqukeyword($tiqustr,$minlen,$mincipin);
function tiqukeyword($tiqustr,$minlen,$mincipin)
{$strlong=strlen($tiqustr);
$arr=array();
$k=-1;
for($i=0;$i<($strlong-$mincipin*$minlen);$i++){
$end=ceil(($strlong-$i)/$mincipin+$i);
for($j=$minlen;$j<$end;$j++){$num=0;
if(($guanjianzi=substr($tiqustr,$i,$j))!==false){
$wz=$i+$j;
$num++;}
else{break;}
while($wz<$strlong){if(($wz=strpos($tiqustr,$guanjianzi,$wz))!==false)
{$num++;
$wz=$wz+strlen($guanjianzi);}
else break;
}
if($j==$minlen){
if($num>=$mincipin){$maxnum=$num;$k++;$str=substr($tiqustr,$i,$j);
$arr[$k]=array($i,$j,$str,$num,0);
}
else{break;}
}
else{
if($num>=$maxnum){
$maxnum=$num;
$str=substr($tiqustr,$i,$j);
$arr[$k]=array($i,$j,$str,$num,0);
}
else break;
}
}
}
echo '初步得到的数组:';
print_r($arr);
//echo '<br/><br/><br/><br/>';
 
$arrlong=count($arr);
for($i=0;$i<$arrlong;$i++){
$bjarr=$arr[$i];
$nowid=$i;
if($bjarr[4]==1)continue;
for($j=$i+1;$j<$arrlong;$j++){
if($arr[$j][4]==1)continue;
$qujianks=$bjarr[0];
$qujianjs=$bjarr[1]+$bjarr[0]-1;
$a=$arr[$j][0];
$b=$arr[$j][1]+$arr[$j][0]-1;
if(($bjarr[2]==$arr[$j][2])&&($bjarr[3]>$arr[$j][3]))$arr[$j][4]=1;
 
if($a<=$qujianks&&$qujianks<=$b&&$a<=$qujianjs&&$qujianjs<=$b)
{if($bjarr[3]<=$arr[$j][3]){
$arr[$nowid][4]=1;$nowid=$j;$bjarr=$arr[$j];
}
}
elseif($qujianks<=$a&&$a<=$qujianjs&&$qujianks<=$b&&$b<=$qujianjs){
$arr[$j][4]=1;
}
}
}
 
echo '<br/><br/><br/><br/>重叠加标记后的数组:';
print_r($arr);
$jieguoarr=array();
for($i=0;$i<$arrlong;$i++)
{if($arr[$i][4]==0)$jieguoarr[]=$arr[$i];
 
}
echo '<br/><br/><br/><br/>';
echo '最后得到的数组:';
print_r($jieguoarr);
}

希望本文所述对大家的php程序设计有所帮助。

相关文章

PHP命名空间namespace的定义方法详解

PHP命名空间namespace的定义方法详解

本文实例讲述了PHP命名空间namespace的定义方法。分享给大家供大家参考,具体如下: 定义命名空间 对于空间的命名,在此我想不用文字解释,更好的解释是用实例来证明: For exa...

php通过记录IP来防止表单重复提交方法分析

本文实例分析了php通过记录IP来防止表单重复提交方法。分享给大家供大家参考。具体分析如下: 这个原理比较的简单就是用户第一次提交时我们记录提交用户的IP地址,这样如果用户在固定时间内再...

php实现的日历程序

php实现的日历程序

本文实例讲述了php实现的日历程序。分享给大家供大家参考。具体如下: <?php ////判断$Year和$Month是否为空,如果为空就获取系统当前日期,否则用$_G...

PHP设计模式之抽象工厂模式实例分析

本文实例讲述了PHP设计模式之抽象工厂模式。分享给大家供大家参考,具体如下: 前面的文章说了PHP下的简单工厂(静态工厂) 和工厂模式,现在说一下抽象工厂模式 工厂模式我们已经说过,增加...

基于ThinkPHP实现批量删除

基于ThinkPHP实现批量删除

本文实例分析了基于ThinkPHP实现批量删除的代码实例,分享给大家供大家参考,具体如下: 废话不多说,先上效果图: HTML布局(基于bootstrap) <div c...