3

私は、UTF-8 でエンコードされた 2 つのドキュメントの類似性について最終的な判断を下さなければならない Java ソフトウェアを作成しています。

2 つのドキュメントは、日付、場所、作成者などの多くの共通点があるため、同じか、互いにわずかに異なる可能性が非常に高くなりますが、それらのテキストが本当にそうであるかどうかを決定します。

2 つのドキュメントのテキストは非常に似ているか、まったく似ていないことが予想されるため、類似性のしきい値をかなり厳密に設定できます。たとえば、2 つのドキュメントは、90% の単語が共通している場合にのみ類似していると言えますが、短いテキストでも長いテキストでも同じように機能する、より堅牢なものが必要です。

要約すると、私は持っています:

  • 非常に似ているか、まったく似ていない 2 つのドキュメント。
  • 2 つのドキュメントが類似している可能性が高い
  • ドキュメントは長いもの (いくつかの段落) と短いもの (数文) の両方があります。

文字列マッチング関数の大きな配列を持つsimmetricsを試しましたが、使用可能なアルゴリズムについての提案に最も興味があります。

私が持っている可能性のある候補は次のとおりです。

  • レーベンシュタイン: その出力は短いテキストの場合により重要です
  • 重複する係数: たぶん、しかし、異なる長さのドキュメントをうまく区別できますか?

また、2 つのテキストがまったく同じである場合にのみ類似していると見なすのはうまくいきません。なぜなら、いくつかの単語だけが異なる文書が類似性テストに合格することを望んでいるためです。

4

4 に答える 4

3

レーベンシュタインは、2 つの単語間の編集距離に適しています。ドキュメントを比較している場合は、おそらく diff のようなものが必要なものに沿っているでしょう。

ここから始めます: http://c2.com/cgi/wiki?DiffAlgorithm。それらは、調べることができる多くの diff スタイルのアルゴリズムへのリンクを提供します。

于 2010-02-25T14:33:01.590 に答える
2

レーベンシュタイン距離は、2 つの単語を比較するために使用されます。ドキュメントの場合、一般的な方法はコサイン類似度または潜在的意味分析です。

于 2012-09-05T11:27:56.243 に答える
1

レーベンシュタイン距離が標準的な尺度であるのには理由があります。計算が簡単で、意味を把握しやすいからです。長いドキュメントの文字数を気にしている場合は、文字の代わりに単語や文、さらには段落で計算することもできます。類似したペアは非常に類似していると予想されるため、それでもうまく機能するはずです。

于 2010-02-25T14:18:51.213 に答える
1

ここでは、レーベンシュタインが最善の解決策のようです。重み付けされた類似性ランキングを取得しようとしている場合-レーベンシュタインの出力は短いテキストの方が重要であると述べたので、そうであると思います-その後、レーベンシュタインアルゴリズムの結果を文字数で割って重み付けします資料。

于 2010-02-25T14:29:06.497 に答える