我们能用gensim自制的语料库来训练LDA吗?

2024-04-30 03:21:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

如何使用这些文档,而不是其他可用的语料库(如Brown语料库或英语Wikipedia)作为训练语料库?

你可以参考this页。


Tags: 文档数据库主题wikipediathis语料库ldadirichlet
1条回答
网友
1楼 · 发布于 2024-04-30 03:21:03

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

语料库共有4种格式:

  1. 市场矩阵(.mm)
  2. SVM灯(.SVM Light)
  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)

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

相关问题 更多 >