使用similar_text函数,实现相似标题文章推荐

$title1 = "特朗普发了一句话 遭美网友模仿造句怒怼";
$title2 = array(
    "特朗普",
    "特朗普发了一句话怒怼",
    " 遭美网友模仿造句怒怼",
    "了一句话 遭美网友模仿造句怒怼",
    "特朗普发了一句话 遭美网友模仿"
);


class a
{
    public function getSimilar($title, $arr_title)
    {
        $arr_len = count($arr_title);
        for ($i = 0; $i <= ($arr_len - 1); $i++) {
            //获取两个字符串相似的字节数
            $arr_similar[$i] = similar_text($arr_title[$i], $title, $persent);
        }
        arsort($arr_similar); //按照相似的字节数由高到低排序
        reset($arr_similar); //将指针移到数组的第一单元
        $index = 0;
        foreach ($arr_similar as $old_index => $similar) {
            $new_title_array[$index] = $arr_title[$old_index];
            $index++;
        }
        return $new_title_array;

    }
}
$obj = new a();
$res = $obj->getSimilar($title1,$title2);
var_dump($res);die;

结果:

array(5) {
  [0]=>
  string(43) "了一句话 遭美网友模仿造句怒怼"
  [1]=>
  string(43) "特朗普发了一句话 遭美网友模仿"
  [2]=>
  string(31) " 遭美网友模仿造句怒怼"
  [3]=>
  string(30) "特朗普发了一句话怒怼"
  [4]=>
  string(9) "特朗普"
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注