2つのテキスト間で類似した単語の数を見つけたい
例
$str1=the cat is on the roof
$str2=the mouse is on the roof
the,is,on,the,roof の単語は $str1 と $str2 で似ています
したがって、出力は5番またはパーセンテージ86%になります
私は similar_text() 関数を試していますが、この関数は私が望むようには機能しません。
2つのテキスト間で類似した単語の数を見つけたい
例
$str1=the cat is on the roof
$str2=the mouse is on the roof
the,is,on,the,roof の単語は $str1 と $str2 で似ています
したがって、出力は5番またはパーセンテージ86%になります
私は similar_text() 関数を試していますが、この関数は私が望むようには機能しません。
簡単に分解してから、array_diff を使用します。
$totalWords = count($array_1);
$array_1 = explode(" ", $str1);
$array_2 = explode(" ", $str2);
$differenceCount = count(array_diff($array_1, $array_2));
$differentPercent = $differenceCount / ($totalWords / 100);
@編集:
上記のコードを編集してパーセンテージを表示します。ただし、配列 1 と配列 2 の単語数が同じでない場合、間違った結果になる可能性があることに注意してください。
これにアプローチする方法は、各文字列を分解してから、次のようarray_diff
に比較することです。
$arr1 = explode(' ', $str1);
$arr2 = explode(' ', $str2);
$diff = array_diff($arr1, $arr2);
echo (count($arr1) - count($diff));
これにより、類似した単語の数がエコーされます。