1

2 つの文字列を比較し、類似しているかどうかを判断できるようにする PHP のライブラリを探しています。例えば:

apple apple 100%
apple aple  80%

など。何か案は?

4

4 に答える 4

11

http://www.php.net/manual/en/function.similar-text.php

similar_text — 2 つの文字列間の類似度を計算する

説明

int similar_text ( string $first , string $second [, float &$percent ] )

これは、2 つの文字列間の類似性を計算します。これは、Oliver によるプログラミングの古典: 世界最高のアルゴリズムの実装 (ISBN 0-131-00413-1) で説明されています。この実装では、Oliver の疑似コードのようにスタックを使用しないことに注意してください。ただし、再帰呼び出しにより、プロセス全体が高速化される場合と高速化されない場合があります。また、このアルゴリズムの複雑さは O(N**3) であることに注意してください。ここで、N は最長の文字列の長さです...

まさにそれを行います。

于 2009-11-17T21:03:56.117 に答える
4

levenshteinsimilar-textsoundex、またはmetaphone関数の使用を検討してください。

于 2009-11-17T21:07:04.830 に答える
2

また、データベースからのデータ抽出の一部としてこの比較を行う場合、多くの DB エンジンには SOUNDS LIKE (または SOUNDEX) 実装があります。これを DB サーバーで実行すると、PHP で実行するよりも高速になります。

于 2009-11-17T21:31:06.867 に答える