|
similar_text二つの文字列の間の類似性を計算する 説明
int similar_text(string
$string1 , string $string2 , float &$percent = null )この関数は、Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1) に記述されたように二つの文字列の間の類似性を計算します。 この実装は Oliver の擬似コードの様にスタックを使用せず、 プロセス全体の速度が改善されるかどうかにかかわらず再帰呼び出しを行うことに注意してください。 このアルゴリズムの計算量は、O(N**3) であることにも注意してください。 ただし、N は最も長い文字列の長さです。 パラメータ
戻り値両方の文字列でマッチした文字の数を返します。 マッチする文字数は、 最初の共通最長部分文字列を探し、 同じことをその文字列の 前後の文字列に対して再帰的に行うことで計算されます。 そうして見つかった全ての共通部分文字列の長さが追加されます。 例例1 similar_text で、引数を入れ替えた場合の例
以下のコードは、
上の例の出力は、 たとえば以下のようになります。 類似度: 5 (71.428571428571 %) 類似度: 3 (42.857142857143 %) 参考
|