14

私のシナリオはかなり単純明快です。私はいくつかのニュース記事 (現時点で最大 1,000 件) を持っており、それらのいくつかは同じストーリー/トピックを扱っていることがわかっています。ここで、これらの記事を共通のストーリー/トピックに基づいて、つまり類似性に基づいてグループ化したいと思います。

これまでに行ったことは、ストップワードの削除やステミングなどの基本的な NLP 手法を適用することです。また、各記事の tf-idf ベクトルも計算しました。これにより、これらの tf-idf ベクトルに基づいて、たとえばコサイン類似度を計算することもできます。しかし、記事のグループ化に少し苦労しています。それを行うには、おそらく関連する2つの主要な方法があります。

1) 機械学習 / クラスタリング: 既存のクラスタリング ライブラリで少し遊んでみましたが、多かれ少なかれ成功しています。ここを参照してください。一方では、k-means などのアルゴリズムは入力としてクラスターの数を必要としますが、これはわかりません。他のアルゴリズムも直感的に指定できないパラメーターを必要とします (私にとってはそうです)。

2) グラフ アルゴリズム: 記事がノードであり、記事間のペアワイズ (コサイン) 類似性を表す加重エッジを使用して、データをグラフとして表すことができます。これにより、たとえば、最初に特定のしきい値を下回るすべてのエッジを削除してから、グラフ アルゴリズムを適用して強く接続されたサブグラフを探すことができます。

要するに、ここからどこへ行くのが最善なのかわかりません。私はこの分野ではまだかなり新しいです。そのためのベストプラクティスや、特定のシナリオでメソッド/アルゴリズムを適用できる (できない) ガイドラインがあるのではないかと思います。

(編集:私の関連する質問へのリンクを忘れていました)

4

3 に答える 3

1

また、k-means のキャノピー バリエーションを試して、クラスター数 (k) の比較的迅速な推定値を作成することもできます。

http://en.wikipedia.org/wiki/Canopy_clustering_algorithm

時間の経過とともに再計算しますか、それとも静的な一連のニュースだけに関心がありますか? あなたの k は時間の経過とともに少し変わるかもしれないので、私は尋ねます。

于 2014-08-11T14:52:42.893 に答える