ドキュメントのクラスタリングに興味があり、現在、これに TF-IDF を使用することを検討しています。
私が間違っていなければ、TF-IDF は特に、クエリが与えられたドキュメントの関連性を評価するために使用されます。特定のクエリがない場合、どのように tf-idf をクラスタリングに適用できますか?
ドキュメントのクラスタリングに興味があり、現在、これに TF-IDF を使用することを検討しています。
私が間違っていなければ、TF-IDF は特に、クエリが与えられたドキュメントの関連性を評価するために使用されます。特定のクエリがない場合、どのように tf-idf をクラスタリングに適用できますか?
実際には正確ではありません: tf-idfは、特定のドキュメント内の用語の関連性を示します。したがって、次のような近接を計算する
ことにより、クラスタリングに完全に使用できます
proximity(document_i, document_j) = sum(tf_idf(t,i) * tf_idf(t,j))
doc i と doc j の両方の用語 t に対して。
ドキュメントのクラスタリング用。最良のアプローチは、k-means アルゴリズムを使用することです。持っているドキュメントの種類が何種類かわかっている場合は、k が何であるかがわかります。
ドキュメントで機能させるには:
a) 最初の k 個のドキュメントをランダムに選択するとします。
b) クラスターを持つドキュメントの最小距離を使用して、各ドキュメントをクラスターに割り当てます。
c) ドキュメントがクラスターに割り当てられた後、各クラスターの重心を取得することにより、K 個の新しいドキュメントをクラスターとして作成します。
さて、問題は
a) 2 つの文書間の距離を計算する方法:初期クラスターとの文書の用語のコサイン類似度に他なりません。ここでの用語は TF-IDF (ドキュメントごとに先に計算されたもの) に他なりません
b)重心は: 与えられた用語の TF-IDF の合計/いいえ。ドキュメントの。クラスター内のすべての可能な用語に対してこれを行います。これにより、別の n 次元ドキュメントが得られます。
それが役立つことを願っています!
TF-IDF は別の目的を果たします。車輪を再発明するつもりがない限り、Carrotのようなツールを使用することをお勧めします。独自に実装したい場合は、ドキュメント クラスタリングをグーグルで検索すると、多くのアルゴリズムが得られます。