php自动获取关键字的方法


本文向大家介绍php自动获取关键字的方法,包括了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程序设计有所帮助。