具有大型语料库python gensim的极慢LDA训练模型

具有大型语料库python gensim的极慢LDA训练模型,python,machine-learning,multiprocessing,gensim,lda,Python,Machine Learning,Multiprocessing,Gensim,Lda,我目前正在处理9600个文档并申请gensim LDA。对于培训部分,这个过程似乎要花很长时间才能得到模型。我也尝试过使用多核函数,但它似乎不起作用。我跑了将近3天,但仍然无法得到lda模型。我已经检查了我的数据和代码的一些特征。我读了这个问题,但仍然没有找到答案 corpora.MmCorpus.serialize('corpus_whole.mm', corpus) corpus = gensim.corpora.MmCorpus('corpus_whole.mm') dictionary

我目前正在处理9600个文档并申请gensim LDA。对于培训部分,这个过程似乎要花很长时间才能得到模型。我也尝试过使用多核函数,但它似乎不起作用。我跑了将近3天,但仍然无法得到lda模型。我已经检查了我的数据和代码的一些特征。我读了这个问题,但仍然没有找到答案

corpora.MmCorpus.serialize('corpus_whole.mm', corpus)
corpus = gensim.corpora.MmCorpus('corpus_whole.mm')
dictionary = gensim.corpora.Dictionary.load('dictionary_whole.dict')

dictionary.num_pos
12796870

print(corpus)
MmCorpus(5275227 documents, 44 features, 11446976 non-zero entries)

# lda model training codes
lda = models.LdaModel(corpus, num_topics=45, id2word=dictionary,\
 update_every=5, chunksize=10000,  passes=100)

ldanulti = models.LdaMulticore(corpus, num_topics=45, id2word=dictionary,\
                            chunksize=10000, passes=100, workers=3)
这是我检查BLAS的配置,我不确定我是否安装了正确的BLAS。 我在这里遇到的一件事是,我不能使用命令apt get在我的mac上安装软件包。我已经安装了Xcode,但它仍然给我一个错误

python -c 'import scipy; scipy.show_config()'
lapack_mkl_info:
libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'iomp5', 'pthread']
library_dirs = ['/Users/misun/anaconda/lib']
include_dirs = ['/Users/misun/anaconda/include']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
lapack_opt_info:
libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'iomp5', 'pthread']
library_dirs = ['/Users/misun/anaconda/lib']
include_dirs = ['/Users/misun/anaconda/include']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
blas_opt_info:
libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'iomp5', 'pthread']
library_dirs = ['/Users/misun/anaconda/lib']
include_dirs = ['/Users/misun/anaconda/include']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
blas_mkl_info:
libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'iomp5', 'pthread']
library_dirs = ['/Users/misun/anaconda/lib']
include_dirs = ['/Users/misun/anaconda/include']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]

我对如何使用python中的shardedcorpus和我的字典和语料库了解不多,因此任何帮助都将不胜感激!为了解决这个问题,我已经三天没睡了!!谢谢

我无法在我的机器上重现您的问题,但对我来说,您的问题似乎不是多处理问题,而是您的参数
通过了
,这对我来说太高了。 尝试类似于1或2的参数,这应该是一个很好的参数。如果你的主题没有很好地融合,你仍然可以增加它

lda = models.LdaModel(corpus, num_topics=45, id2word=dictionary, update_every=5, chunksize=10000,  passes=1)

这最多应该在一天内完成,可能只有几个小时(取决于您的机器)

我无法在我的机器上重现您的问题,但对我来说,您的问题似乎不是多处理问题,而是您的参数
通过了
,这对我来说太高了。 尝试类似于1或2的参数,这应该是一个很好的参数。如果你的主题没有很好地融合,你仍然可以增加它

lda = models.LdaModel(corpus, num_topics=45, id2word=dictionary, update_every=5, chunksize=10000,  passes=1)

这最多应该在一天内完成,可能只有几个小时(取决于您的机器)

当你打印MMC语料库时,会有一些令人惊讶的数字。上面说有500多万份文件,尽管你只说了9600份。此外,只有44个特性(不同的单词?)有超过1100万个非零条目。更不用说一本词条超过1200万的字典了。你确定你的
gensim
字典、语料库等都正常吗?当你打印你的MmCorpus时,有一些令人惊讶的数字。上面说有500多万份文件,尽管你只说了9600份。此外,只有44个特性(不同的单词?)有超过1100万个非零条目。更不用说一本词条超过1200万的字典了。您确定您的
gensim
词典、语料库等都正常吗?