我们可以使用自制语料库来使用gensim进行LDA培训吗?

时间:2013-04-27 16:05:53

标签: python lda gensim

我必须应用LDA(潜在Dirichlet分配)从我收集的20,000个文档的数据库中获取可能的主题。

我如何使用这些文件而不是像布朗语料库或英语维基百科那样的其他语料库作为训练语料库?

您可以参考this页面。

1 个答案:

答案 0 :(得分:13)

在浏览了Gensim软件包的文档之后,我发现有4种方法可以将文本存储库转换为语料库。

语料库共有4种格式:

  1. 市场矩阵(.mm)
  2. SVM Light(.svmlight)
  3. Blie Format(.lad-c)
  4. 低格式(.low)
  5. 在这个问题中,如上所述,数据库中共有19,188个文档。 一个人必须阅读每个文档并从句子中删除停用词和标点符号,这可以使用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)
    

    这样就可以将他的数据集转换为可以使用gensim包使用LDA进行主题建模训练的语料库。