0

我需要比较下面两个句子,输出应该是匹配的百分比

A:生产高级经理

B:高级经理,生产-销售

我尝试通过比较句子的每个单词(下面的代码)。它有效,但我需要更有效的方法。

public function contact_title_match($old_title,$new_title)
{
   $new_title=preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $new_title);
   $new_title_arr=explode(" ",$new_title);
   $count=count($new_title_arr);
   $index=0;
   if($count>0)
   {
      foreach($new_title_arr as $title_word)
      {
        if(stripos($old_title,$title_word)!==false)
            $index++;
      }
      if(($index/$count)>= 0.5) return 1;
      else                      return 0;
   }
}
4

1 回答 1

7

听起来不错similar_text

$sentence_a = "senior manager, production";
$sentence_b = "senior manager, prodcution-sales";
$percentage = 0;

similar_text( $sentence_a, $sentence_b, $percentage );

// The strings are 86 percent similar.
printf("The strings are %d percent similar.", $percentage);

演示:http ://codepad.org/9Vx797uB

于 2012-11-21T05:16:23.063 回答