0

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() 関数を試していますが、この関数は私が望むようには機能しません。

4

4 に答える 4

6

簡単に分解してから、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 の単語数が同じでない場合、間違った結果になる可能性があることに注意してください。

于 2014-01-16T14:28:12.453 に答える
2

これにアプローチする方法は、各文字列を分解してから、次のようarray_diffに比較することです。

$arr1 = explode(' ', $str1);
$arr2 = explode(' ', $str2);
$diff = array_diff($arr1, $arr2);
echo (count($arr1) - count($diff));

これにより、類似した単語の数がエコーされます。

于 2014-01-16T14:31:21.337 に答える