テキストクラスタリングのアルゴリズム


17

大量の文章を意味ごとにグループ化する問題があります。これは、文がたくさんあり、それらを意味ごとにグループ化する場合の問題に似ています。

これを行うにはどのようなアルゴリズムが推奨されますか?クラスターの数が事前にわかりません(さらに多くのデータが追加されるにつれてクラスターも変化する可能性があります)。通常、各文を表すためにどの機能が使用されますか?

私は今、単語のリストと次のように定義された文の間の距離を持つ最も単純な機能を試しています:

ここに画像の説明を入力してください

(AとBは、文AとBの対応する単語のセットです)

それはまったく理にかなっていますか?

事前にクラスターの数を必要としないので、scikitライブラリーの平均シフトアルゴリズムをこの距離に適用しようとしています。

誰かが問題のより良い方法/アプローチをアドバイスするなら-私はまだトピックに新しいので、それは非常に高く評価されます。

回答:


13

チェックスタンフォードNLPグループのオープンソースソフトウェア(http://www-nlp.stanford.edu/softwareを)、特に、スタンフォード分類子http://www-nlp.stanford.edu/software/classifier.shtml) 。このソフトウェアはで書かれておりJava、おそらくあなたを喜ばせますが、他の言語のバインディングも持っています。ライセンスに注意してください-商用製品でコードを使用する場合は、商用ライセンスを取得する必要があります。

このタスクに適したIMHOのもう 1つの興味深いオープンソースライブラリのセットは、機械学習GraphLabhttp://select.cs.cmu.edu/code/graphlab)の並列フレームワークです。これには、さまざまなクラスタリングを実装するクラスタリングライブラリが含まれます。アルゴリズム(http://select.cs.cmu.edu/code/graphlab/clustering.html)。モデルを実装し、マルチコアおよびマルチプロセッサの並列処理をサポートするため、非常に大量のデータ(特に)に特に適していますMapReduce

次のことをご存知でしょうが、念のために言及します。(http://www.nltk.org)のNatural Language Toolkit(NLTK)には、テキストのクラスタリング/分類/分類のためのモジュールが含まれています。関連する章を確認してください:http://www.nltk.org/book/ch06.htmlをPythonNLTK Book

更新:

アルゴリズムといえばscikit-learn、次のトピック抽出の例に示されているように、http : //scikit-learn.org/stable/auto_examples/applications/topics_extraction_with_nmf.htmlのように、ほとんどのものを試したようです。ただし、Non-Negative Matrix Factorization(NMF)など、さまざまなクラスタリングアルゴリズムを実装する便利な他のライブラリがあります。そのようなライブラリの1つに、https://code.google.com/p/pymfにホームページがあり、https://github.com/nils-werner/pymfにソースコードがあるPython Matrix Factorization(PyMF)があります。さらに興味深い、PythonベースのライブラリはNIMFAです。様々な実装しNMFアルゴリズムhttp://nimfa.biolab.si。ここに記述した研究論文では、ですNIMFAhttp://jmlr.org/papers/volume13/zitnik12a/zitnik12a.pdf。ここでの非常に類似したテキストの処理問題の解決策提示し、そのマニュアルからの例ですトピッククラスタリングhttp://nimfa.biolab.si/nimfa.examples.documents.htmlが


1
このような詳細な対応に感謝します。私はあなたのすべての提案、試してみるための多くの作業を行います!また、carrot2ツールは、テキストデータの教師なしクラスタリングで本当に素晴らしい仕事をしていることがわかりました。将来の参照用の投稿リンクhttp://project.carrot2.org/
Maxim Galushka 14

@MaximGalushka:どういたしまして!私はあなたの発見とあなたが最終的に達成する進歩について知りたいです。こちらに投稿するか、私と直接連絡してください。
アレクサンドルブレフ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.