2017-04-24 3 views
1

私はsimilar_text()関数を使って2つの文字列間の類似度を計算しています。php similar_text()は文字列の位置を変更すると異なる結果を返します

$s1 = 'God is great'; 
$s2 = 'I too'; 

similar_text($s1, $s2, $result); 

echo $result; 

それは出力11.764705882353 を与えますが、私は、文字列の位置を交換するとき、それは異なる出力を与える:

$s1 = 'God is great'; 
$s2 = 'I too'; 

similar_text($s2, $s1, $result); 

echo $result; 

これが起こるなぜそれが出力23.529411764706 を与えますか?

答えて

0

アルゴリズムは、2番目の文字列が含まれていることを最初の文字列の最初の文字を取ることをカウントし、2番目の文字列から、その前に文字を破棄します。だからこそ、文字間の文字を逃すのです。文字順を変更すると、それが違いの原因になります。

0

私はなぜsimilar_text() produces different resultsが、一方では、あなたはすなわち、コヒーレントな結果を生成し、何が必要でしょうこれは、levenshtein()を使用することができ、完全にはわからない。:

echo levenshtein ($s2, $s1); 
# 11 
echo levenshtein ($s1, $s2); 
# 11 
関連する問題