Example #1
0
 /**
  * 获取最终关键字(返回用 "," 间隔的关键字)
  *
  * @return string
  */
 public function getFinallyKeywords($num = 10)
 {
     $n = 0;
     // 获取索引hash数组
     $arr = [];
     foreach ($this->finallyResult as $v) {
         if ($this->resultType == 2 && ($v['t'] == 3 || $v['t'] == 5)) {
             continue;
         }
         $w = StringTool::encoding($v['w'], $this->targetCharSet);
         if ($w == ' ') {
             continue;
         }
         if (isset($arr[$w])) {
             $arr[$w]++;
         } else {
             $arr[$w] = 1;
         }
     }
     arsort($arr);
     $finallyString = '';
     foreach ($arr as $k => $v) {
         //排除长度为1的词
         if (strlen($k) == 1) {
             continue;
         } elseif (strlen($k) == 2 && preg_match('/[^0-9a-zA-Z]/', $k)) {
             continue;
         } elseif (strlen($k) < 4 && !preg_match('/[a-zA-Z]/', $k)) {
             continue;
         }
         $finallyString .= $finallyString == '' ? $k : ',' . $k;
         $n++;
         if ($n > $num) {
             break;
         }
     }
     return $finallyString;
 }