1

多数のテキストから 1 つのテキストに最も類似した x 個のテキストを取得します。

ページテキストに変更する方が良いかもしれません。

遅すぎるため、テキストをすべてのテキストと比較しないでください。

4

5 に答える 5

4

類似のドキュメント/ページを識別する機能は、Web ページであれ、より一般的な形式のテキストであれ、コードであれ、多くの実用的な用途があります。このトピックは、学術論文やあまり専門的でないフォーラムでもよく取り上げられています。このようにドキュメントが比較的豊富にあるにもかかわらず、特定のケースに関連する情報やテクニックを見つけるのは難しい場合があります。

目前の特定の問題と関連する要件を説明することで、より多くのガイダンスを提供できる場合があります。それまでの間、以下にいくつかの一般的なアイデアを示します。

多くの異なる関数を使用して、ページの類似性を何らかの方法で測定できます。これらの関数の 1 つ (場合によっては複数) の選択は、問題に割り当てることができる時間やスペースの量、およびノイズに対して必要な許容レベルなど、さまざまな要因によって異なります。

より単純なメトリックのいくつかは次のとおりです。

  • 単語の最長共通シーケンスの長さ
  • 一般的な単語の数
  • n 個を超える単語の単語の共通シーケンスの数
  • 各ドキュメント内の上位 n 個の最も頻繁な単語の一般的な単語の数。
  • ドキュメントの長さ

上記のメトリクスのいくつかは、正規化するとうまく機能します (たとえば、サイズが大きいため、他のページと同様の単語が含まれる可能性が高い長いページを優先しないようにするため)。

より複雑で計算コストのかかる測定は次のとおりです。

  • 編集距離 (編集距離を測定する方法は多数あるため、実際には一般的な用語です。一般に、あるテキストを別のテキストに変換するのに必要な [編集] 操作の数を測定することを目的としています。)
  • Ratcliff/Obershelp アルゴリズムから派生したアルゴリズム (ただし、文字ではなく単語をカウントします)
  • 線形代数ベースの測定
  • ベイジアン フィラーなどの統計手法

一般に、ほとんどの計算をドキュメントごとに 1 回実行できる測定値/アルゴリズムを区別できます。その後、これらの測定値を比較または結合することを目的とした追加のパスが続きます (追加の計算は比較的少なくて済みます)。ペアで比較するドキュメントを処理します。

1 つ (または実際にはいくつかの重み付け係数と共にそのような測定値) を選択する前に、類似性測定自体を超えた追加の要因を考慮することが重要です。たとえば、それは有益かもしれません...

  • なんらかの方法でテキストを正規化します (特に Web ページの場合、類似したページ コンテンツまたは類似した段落は、ページに関連付けられたすべての「装飾」のため、似ていないように見えます: ヘッダー、フッター、広告パネル、異なるマークアップなど)
  • マークアップを悪用する (例: プレーン テキストに見られる類似点よりも、タイトルや表に見られる類似点を重視する。
  • ドメインに関連する (または一般的に知られている) 表現を特定して排除します。たとえば、2 つの完全に異なるドキュメントが、それぞれのコキュメントの内容の本質と真に関連していない、法的免責事項または一般的な目的の説明に関連する共通の 2 つの「ボイラープレート」段落を持っている場合、似ているように見える場合があります。
于 2009-10-19T05:14:25.520 に答える
1

すべては、「類似」の意味によって異なります。「ほぼ同じ主題」を意味する場合、一致するN グラムを探すことは、通常、かなりうまく機能します。たとえば、トリグラムからそれらを含むテキストへのマップを作成し、すべてのテキストのすべてのトリグラムをそのマップに配置します。次に、一致するテキストが得られたら、マップ内のすべてのトリグラムを検索し、最も頻繁に返されるテキストを選択します (おそらく、長さによる正規化を行います)。

于 2009-10-20T05:58:13.890 に答える
0

類似の意味はわかりませんが、Luceneのような検索システムにテキストをロードして、「1つのテキスト」をクエリとして提示する必要があります。Luceneはテキストの事前インデックスを作成するため、クエリ時に最も類似したテキストを(ライトによって)すばやく見つけることができます。

于 2009-10-20T05:03:28.943 に答える
0

2 つのページ間の「差」を測定する関数を定義する必要があります。そのようなさまざまな機能を想像できますが、そのうちの 1 つをドメインに合わせて選択する必要があります。

  • キーワード セットの違い- 辞書で最も一般的な単語のドキュメントを整理し、ドキュメントごとに一意のキーワードのリストを作成できます。差分機能は、ドキュメントごとのキーワードのセットの差分として差分を計算します。

  • テキストの差分- テキスト差分アルゴリズムを使用して、あるドキュメントを別のドキュメントに変換するのに必要な編集回数に基づいて各距離を計算します (「テキスト差分アルゴリズム」を参照してください) 。

差分関数を取得したら、現在のドキュメントと他のすべてのドキュメントとの差分を計算し、最も近い他のドキュメントを返します。

これを何度も行う必要があり、大量のドキュメントがある場合、問題は少し難しくなります。

于 2009-10-19T05:01:41.490 に答える