2013-04-27 4 views
7

私が収集した2万のドキュメントのデータベースから可能なトピックを得るためには、LDA(Latent Dirichlet Allocation)を適用する必要があります。gensimを使用してLDAのトレーニングに自己作成コーパスを使用できますか?

Brown CorpusやEnglish Wikipediaのような他のコーパスをトレーニングコーパスとして利用するのではなく、これらのドキュメントをどのように使用できますか?

thisページを参照できます。

+1

この質問は多少の違いはありません。あなたがこれまでに試したことや、あなたが持っている特定の問題についてより具体的にできる場合は、回答を得る可能性が高くなります。 – ASGM

+0

質問を編集しました! –

+0

好きではない場合は、投票を終了するだけです。 –

答えて

12

Gensimパッケージのドキュメントを読んだ後、私は、テキストリポジトリをコーパスに変換するための合計4つの方法があることを発見しました。

コーパスの合計4つのフォーマットがあります。

  1. 市場マトリックス(.mm)
  2. SVMライト(.svmlight)
  3. Blieフォーマット(.lad-C)
  4. 低フォーマットは、 (.low)

この問題では、上記のように、データベースには合計19188件のドキュメントがあります。 各文書を読み込み、文章からストップワードと句読点を削除する必要があります。これはnltkを使って行うことができます。

import gensim 
from gensim import corpora, similarities, models 

## 
##Text Preprocessing is done here using nltk 
## 

##Saving of the dictionary and corpus is done here 
##final_text contains the tokens of all the documents 

dictionary = corpora.Dictionary(final_text) 
dictionary.save('questions.dict'); 
corpus = [dictionary.doc2bow(text) for text in final_text] 
corpora.MmCorpus.serialize('questions.mm', corpus) 
corpora.SvmLightCorpus.serialize('questions.svmlight', corpus) 
corpora.BleiCorpus.serialize('questions.lda-c', corpus) 
corpora.LowCorpus.serialize('questions.low', corpus) 

##Then the dictionary and corpus can be used to train using LDA 

mm = corpora.MmCorpus('questions.mm') 
lda = gensim.models.ldamodel.LdaModel(corpus=mm, id2word=dictionary, num_topics=100, update_every=0, chunksize=19188, passes=20) 

この方法1はgensimパッケージを使用してLDAを使用してトピックモデリングのために訓練することができコーパスに自分のデータセットを変換することができます。

+0

これらの形式の例へのリンクがありますか? –

+0

@PiotrMigdalこんにちは、[ここ](https://radimrehurek.com/gensim/tut1.html#corpus-formats)を見てください。 –

+0

私はすでにそこを見ましたが、例はありません(つまり、指定された形式のファイルが数行あります)。 http://cscorley.github.io/2014/05/06/using-gensim-for-lda/には「mallet」の例しかありません。 –