我需要比较以下两个句子,输出应该是匹配的百分比
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;
}
}
答案 0 :(得分: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);