アップデート:私は今、PHP拡張モジュールは、ネイティブPHPでファジーハッシュとハッシュの比較を容易にするためのssdeepのC APIのphp_ssdeepと呼ばれる書かれています。詳細はover at my blogです。私はこれが人々に役立つことを願っています。文書管理アプリケーションで文書の重複や類似した文書のチェック
さまざまなファイル形式(おそらく1000個のファイル)を保存するLinuxボックスにPHPでカスタムドキュメント管理アプリケーションを作成することに関与しています。テキスト文書がアップロードされていないかどうかを確認する必要がありますデータベースの複製。
ユーザーが新しいファイルをアップロードすると、重複しているか類似のコンテンツを含むファイルのリストを表示することができます。これにより、既存の文書の1つを選択したり、独自の文書をアップロードし続けることができます。
同様の文書は、同様の内容のコンテンツとおそらく動的に生成されたキーワードのリストを調べることによって決定されます。次に、ユーザーに重複を見つけるのに役立つパーセンテージの一致を表示することができます。
このプロセスにはどのパッケージを使用することもできますし、過去にこれを行ったことがありますか?
私が思うに、直接の重複は、フォームのすべてのテキストの内容を取得し、
- は句読点
- 下げるに変換または大文字
を削除
このプロセスは、夜間ジョブとして実行される可能性もあり、計算要件がリアルタイムで実行するには大きすぎる場合、次回ログイン時に重複していることをユーザーに通知できます。しかし、リアルタイムが優先されます。
MD5ハッシュを使用すると、まったく同じ2つのドキュメントのみが役に立ちます。 1つの文字が異なる場合、結果のMD5ハッシュは類似していません(ハッシュのポイントの1つです)。したがって、これは類似したファイルを見つけるためにはうまくいかないでしょう... – Franz
私はそれを実現します。それで、私は、似たようなファイルではなく正確なマッチを見つける技術を述べました。 – Treffynnon