Latent Dirichlet Allocationから派生したトピックを使用したドキュメントのクラスタリング


9

プロジェクトにLatent Dirichlet Allocationを使用したいのですが、gensimライブラリでPythonを使用しています。トピックを見つけた後、k-meansなどのアルゴリズムを使用してドキュメントをクラスター化したいと思います(理想的には、クラスターの重複に適切なものを使用したいので、どのような推奨も歓迎されます)。私は何とかトピックを取得しましたが、それらは次の形式です。

0.041 *大臣+ 0.041 *キー+ 0.041 *瞬間+ 0.041 *物議を醸す+ 0.041 *首相

クラスタリングアルゴリズムを適用し、誤りがあれば修正するには、tfidfまたはword2vecを使用して各単語を数値として表す方法を見つける必要があると思います。

たとえばリストからテキスト情報を「ストリップ」して、適切な乗算を行うためにそれらを元に戻す方法についてのアイデアはありますか?

たとえば、Ministerという単語のtfidfの重みが0.042である場合、同じトピック内の他の単語についても同様に、次のように計算する必要があります。

0.041 * 0.42 + ... + 0.041 * tfidf(Prime)そして結果をクラスタリングするために後で使用される結果を取得します。

お時間をいただきありがとうございます。


1
チュートリアル説明したように、ドキュメントをベクターとして表現できます。それらのベクトルをクラスター化します。
Emre、2014年

私は仲間を知っていますが、LDAをコレクションに適用した後に作成されたトピックに従ってそれらをクラスター化する必要があります。各ドキュメントを各トピックと比較し、各ドキュメントの対応するトピックを見つけるために、各トピックはベクトルとして表す必要があります。
Swan87 2014年

各単語をベクトルとして表す必要はありません。学習した LDA変換をコーパスに適用すると、ドキュメント全体の新しい表現が得られます。LSIと、例えば、このリンクを参照:radimrehurek.com/gensim/tut2.html彼らは、LSIとコーパス全体を学んだLSI変換を適用する場合に重要な部分である[doc_bow]
ウィルスタントン

回答:


4

LDAがトピックのリストを作成し、各ドキュメントの各トピックに対してスコアを付けたとすると、ドキュメントとそのスコアをベクトルとして表すことができます。

Document | Prime | Minister | Controversial | TopicN | ...
   1       0.041    0.042      0.041          ...
   2       0.052    0.011      0.042          ...

各ドキュメントのスコアを取得するには、ドキュメントを実行します。訓練されたLDAモデルを通して、言葉の袋として。gensimのドキュメントから:

>>> lda = LdaModel(corpus, num_topics=100)  # train model
>>> print(lda[doc_bow]) # get topic probability distribution for a document

次に、この行列でk-meansを実行すると、類似しているドキュメントがグループ化されます。K-meansは、デフォルトではハードクラスタリングアルゴリズムであり、各ドキュメントを1つのクラスターに分類することを意味します。ドキュメントがクラスター内に収まる確率スコアを提供するソフトクラスタリングメカニズムを使用できます。これは、ファジーk平均と呼ばれます。 https://gist.github.com/mblondel/1451300は、scikit learnでそれを行う方法を示すPythonの要旨です。

PS:2つ以上のリンクを投稿できません


私はそれを "n"にしようとしましたが、トピックがtであると述べているドキュメントはありません。ただし、たとえばx no no documentsの場合、すべてのt個のトピックの確率が表示されるわけではなく、一部の(t- no)トピックの確率が表示されます。1<= no <tです。小さなドキュメントサイズで実験を実行した場合、それは起こりません。確率が0の場合、まったく印刷されないためですか?
Manish Ranjan

0

前の回答を補完するために、lda topic-docディストリビューションから派生した構成データに対してkmeansを直接実行するのではなく、構成データ変換を使用して、ilrやclrなどのユークリッド空間に投影します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.