私は、UTF-8 でエンコードされた 2 つのドキュメントの類似性について最終的な判断を下さなければならない Java ソフトウェアを作成しています。
2 つのドキュメントは、日付、場所、作成者などの多くの共通点があるため、同じか、互いにわずかに異なる可能性が非常に高くなりますが、それらのテキストが本当にそうであるかどうかを決定します。
2 つのドキュメントのテキストは非常に似ているか、まったく似ていないことが予想されるため、類似性のしきい値をかなり厳密に設定できます。たとえば、2 つのドキュメントは、90% の単語が共通している場合にのみ類似していると言えますが、短いテキストでも長いテキストでも同じように機能する、より堅牢なものが必要です。
要約すると、私は持っています:
- 非常に似ているか、まったく似ていない 2 つのドキュメント。
- 2 つのドキュメントが類似している可能性が高い
- ドキュメントは長いもの (いくつかの段落) と短いもの (数文) の両方があります。
文字列マッチング関数の大きな配列を持つsimmetricsを試しましたが、使用可能なアルゴリズムについての提案に最も興味があります。
私が持っている可能性のある候補は次のとおりです。
- レーベンシュタイン: その出力は短いテキストの場合により重要です
- 重複する係数: たぶん、しかし、異なる長さのドキュメントをうまく区別できますか?
また、2 つのテキストがまったく同じである場合にのみ類似していると見なすのはうまくいきません。なぜなら、いくつかの単語だけが異なる文書が類似性テストに合格することを望んでいるためです。