【发布时间】:2023-01-12 12:09:27
【问题描述】:
我正在使用 gensim library 进行主题建模,更准确地说是 Ensemble LDA 方法。我的代码相当标准(我遵循文档),主要部分是:
model = models.EnsembleLda(corpus=corpus,
id2word=id2word,
num_topics=ntopics,
passes=2,
iterations = 200,
num_models=ncores,
topic_model_class=models.LdaModel,
ensemble_workers=nworkers,
distance_workers=ncores)
(完整代码在https://github.com/erwanm/gensim-temporary/blob/main/gensim-topics.py)
但是根据我的数据,我有时得到下面的错误。但是它也常常对一部分数据运行正确,所以我不知道问题是否与我的数据有关?
Process Process-52:
Traceback (most recent call last):
File "/home/moreaue/anaconda3/envs/twarc2/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/home/moreaue/anaconda3/envs/twarc2/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/home/moreaue/anaconda3/envs/twarc2/lib/python3.10/site-packages/gensim/models/ensemblelda.py", line 534, in _asymmetric_distance_matrix_worker
distance_chunk = _calculate_asymmetric_distance_matrix_chunk(
File "/home/moreaue/anaconda3/envs/twarc2/lib/python3.10/site-packages/gensim/models/ensemblelda.py", line 491, in _calculate_asymmetric_distance_matrix_chunk
mask = masking_method(ttd1, masking_threshold)
File "/home/moreaue/anaconda3/envs/twarc2/lib/python3.10/site-packages/gensim/models/ensemblelda.py", line 265, in mass_masking
smallest_valid = sorted_a[largest_mass][-1]
IndexError: index -1 is out of bounds for axis 0 with size 0
该错误似乎与多处理有关,因为 ensemblelda 运行多个线程(每个线程运行一个 LDA 实例)。
什么会导致此错误?关于如何解决它的任何建议?
【问题讨论】:
标签: python nlp multiprocessing gensim