0

類似性に基づいてドキュメントをクラスター化しようとしています。アイデアは、2 つのドキュメントの類似した単語を照合し、その数を両方のドキュメントの単語の総数で割ることです。各値は 2D 配列に格納されます。

1.0000 0.1548 0.0968 0.0982 0.2750 0.1239 0.0891 0.1565
0.1548 1.0000 0.0960 0.0898 0.1631 0.0756 0.0874 0.2187
0.0957 0.2300 1.0000 0.4964 0.0980 0.2004 0.4582 0.2315
0.0971 0.2234 0.4946 1.0000 0.0995 0.2010 0.4533 0.2244
0.2793 0.1631 0.0986 0.1001 1.0000 0.1324 0.0904 0.1662
0.1726 0.0756 0.2149 0.2157 0.1795 1.0000 0.2019 0.0819
0.0880 0.2108 0.4582 0.4550 0.0899 0.1880 1.0000 0.2124
0.1556 0.2094 0.0950 0.0884 0.1662 0.0764 0.0867 1.0000

したがって、8 つのドキュメントがある場合、各ドキュメントを他のドキュメントと比較した結果は、配列の各インデックスの上のテーブルに 1 つのドキュメントを示すように格納されます。したがって、ドキュメント 0,0 1,1 2,2 ... は同じであるため、常に値が 1 になります。

類似したドキュメントをクラスタ化するにはどうすればよいですか。つまり、値が互いに近いのは誰ですか?

4

1 に答える 1

0

たとえば、類似性を距離に変換しようとしましたか

dist = 1 - sim

あなたの類似性は1に制限されているので、これはうまくいくはずです。

ただし、階層クラスタリングはうまくスケーリングできないことに注意してください。通常の素朴な実装は に対応しO(n^3)、非常に慎重な実装がいくつかのリンケージ タイプ (単一リンク、完全リンク、おそらく UPGMA も) で実行O(n^2)できます。それでも、通常のテキスト コーパスは大きすぎて実行できません。

于 2013-11-10T12:04:28.460 に答える