私のプロジェクトでは、いくつかのテキスト(英語のテキスト)をクラスター化する必要があります。k-meansや階層型などのクラスタリングアルゴリズムで問題ありません。唯一のことは、テキストのクラスターが異なる名前を持つように、ソフトウェアによってクラスターに名前を付ける必要があることです。
これは可能ですか?
あなたの目標が何であるか、またはあなたのデータがどのように見えるかは完全には明確ではありません。(パッセージごとのワードカウントのリスト?他に何か?)
まず、データの収集/準備を分析から分離することをお勧めします。特に、探索的分析を実行可能にする事前定義されたクラスタリング実装を備えたパッケージが必要になります。また、単純なコード実装は、多くの場合、少し骨の折れるものです。クラスターの意味をよりよく理解するために、統合された視覚化およびデータ表示機能を備えたものの使用を検討してください。R(統計ソフトウェア)、MATLAB、Orange(pythonベースのデータマイニングスイート)などの事前定義されたパッケージはすべて適切な選択です。
Orangeには、クラスターの選択方法(距離メトリック、反復など)を制御するための非常に優れたGUIオプションが多数あり、どのクラスターが最も有用であるかを調べるためのいくつかの異なる方法も提供します。ただし、少なくとも1年前の時点では、中規模(800 MB)のデータセットではk-meansクラスタリングの実装が非常に遅いという経験があります。その一部は、Pythonが他の言語よりも本質的に遅いという事実によるものですが、他の問題もあると思います。何を使用する場合でも、入力ファイルのドキュメントを注意深く確認する必要があります。
はい。クラスターに名前を付けることができるソフトウェアがあります
cluster_1
cluster_2
cluster_3
cluster_4
真剣にあなたはクラスター名が何であると期待しますか?クラスター化された記事からの自動要約?テキストの要約はまだうまくスケールアップしていません。しかし、おそらくテキスト要約エンジンを介して完全なクラスターを実行しようとすることができます。
k-meansは、かなり人工的なクラスターを生成することに注意してください。トピックを知りませんし、気にしません。数学的な分散を最適化するだけであり、テキストデータにはあまり役立ちません。
できることは、既成のクラスタリングアルゴリズムを使用して単語をクラスタリングし、次に各クラスターを検査するアルゴリズムを実行して、そのクラスターを何らかの形で示す単語を見つけることです。これを行うには多くのオプションがありますが、最初に頭に浮かぶのは、クラスターと各用語の間で古き良きカイ2乗検定を実行し、次に検定統計量の値が最も高い用語を選択することです。