当前位置:首页 > PHP教程 > php高级应用 > 列表

php自动获取关键字的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-05 20:40:17 浏览: 评论:0 

这篇文章主要介绍了php自动获取关键字的方法,通过自定义函数tiqukeyword实现关键字的自动获取功能,具有一定参考借鉴价值,需要的朋友可以参考下。

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

具体实现方法如下:

  1. $mincipin=5;//最小词频 
  2. $minlen=4;//关键字最小长度 
  3. tiqukeyword($tiqustr,$minlen,$mincipin); 
  4. function tiqukeyword($tiqustr,$minlen,$mincipin) 
  5. {$strlong=strlen($tiqustr); 
  6. $arr=array(); 
  7. $k=-1; 
  8. for($i=0;$i<($strlong-$mincipin*$minlen);$i++){ 
  9. $end=ceil(($strlong-$i)/$mincipin+$i); 
  10. for($j=$minlen;$j<$end;$j++){$num=0; 
  11. if(($guanjianzi=substr($tiqustr,$i,$j))!==false){ 
  12. $wz=$i+$j; 
  13. $num++;} 
  14. else{break;} 
  15. while($wz<$strlong){if(($wz=strpos($tiqustr,$guanjianzi,$wz))!==false) 
  16. {$num++; 
  17. $wz=$wz+strlen($guanjianzi);} 
  18. else break; 
  19. } 
  20. if($j==$minlen){ 
  21. if($num>=$mincipin){$maxnum=$num;$k++;$str=substr($tiqustr,$i,$j); 
  22. $arr[$k]=array($i,$j,$str,$num,0); 
  23. } 
  24. else{break;} 
  25. } 
  26. else{ 
  27. if($num>=$maxnum){ 
  28. $maxnum=$num; 
  29. $str=substr($tiqustr,$i,$j); 
  30. $arr[$k]=array($i,$j,$str,$num,0); 
  31. } 
  32. else break; 
  33. } 
  34. } 
  35. } 
  36. echo '初步得到的数组:'; 
  37. print_r($arr); 
  38. //echo '<br/><br/><br/><br/>'; 
  39.  
  40. $arrlong=count($arr); 
  41. for($i=0;$i<$arrlong;$i++){ 
  42. $bjarr=$arr[$i]; 
  43. $nowid=$i; 
  44. if($bjarr[4]==1)continue; 
  45. for($j=$i+1;$j<$arrlong;$j++){ 
  46. if($arr[$j][4]==1)continue; 
  47. $qujianks=$bjarr[0]; 
  48. $qujianjs=$bjarr[1]+$bjarr[0]-1; 
  49. $a=$arr[$j][0]; 
  50. $b=$arr[$j][1]+$arr[$j][0]-1; 
  51. if(($bjarr[2]==$arr[$j][2])&&($bjarr[3]>$arr[$j][3]))$arr[$j][4]=1; 
  52.  
  53. if($a<=$qujianks&&$qujianks<=$b&&$a<=$qujianjs&&$qujianjs<=$b) 
  54. {if($bjarr[3]<=$arr[$j][3]){ 
  55. $arr[$nowid][4]=1;$nowid=$j;$bjarr=$arr[$j]; 
  56. } 
  57. } 
  58. elseif($qujianks<=$a&&$a<=$qujianjs&&$qujianks<=$b&&$b<=$qujianjs){ 
  59. $arr[$j][4]=1; 
  60. } 
  61. } 
  62. } 
  63.  
  64. echo '<br/><br/><br/><br/>重叠加标记后的数组:'; 
  65. print_r($arr); 
  66. $jieguoarr=array(); 
  67. for($i=0;$i<$arrlong;$i++) 
  68. {if($arr[$i][4]==0)$jieguoarr[]=$arr[$i]; 
  69.  
  70. } 
  71. echo '<br/><br/><br/><br/>'; 
  72. echo '最后得到的数组:'; 
  73. print_r($jieguoarr); 
  74. }

Tags: php获取关键字

分享到:

相关文章