【问题标题】:I get Runtime Warning: invalid value encountered in double_scalars and divide by zero encountered in double_scalars when using ldaseq我收到运行时警告:使用 ldaseq 时在 double_scalars 中遇到无效值并在 double_scalars 中遇到除以零
【发布时间】:2021-01-25 17:17:10
【问题描述】:

在 gensim 中使用 ldaseqmodel 时,我收到了运行时间警告:

D:\Anaconda3\lib\site-packages\gensim\models\ldaseqmodel.py:1474: RuntimeWarning:在双标量中遇到无效值
收敛 = np.fabs((lhood_old - lhood) / (lhood_old * total)) D:\Anaconda3\lib\site-packages\gensim\models\ldaseqmodel.py:293: RuntimeWarning:在 double_scalars 中遇到除以零
收敛 = np.fabs((bound - old_bound) / old_bound)

这是代码:

ldaseq = LdaSeqModel(corpus=corpus_comments, id2word=dictionary_comments,time_slice=time_docs, num_topics=5, chunksize=10,lda_model=model)

数据集大约有 50,000 篇博客文章。

请帮帮我!非常感谢!

【问题讨论】:

标签: python python-3.x numpy gensim lda


【解决方案1】:

您收到的第一个警告;即

D:\Anaconda3\lib\site-packages\gensim\models\ldaseqmodel.py:1474: RuntimeWarning: invalid value encountered in double_scalars
converged = np.fabs((lhood_old - lhood) / (lhood_old * total))

是因为您的语料库中有空文档。要解决此问题,请先找出语料库中的空文档,然后将其从语料库中删除。

现在,第二个警告请看this的回答,我已经在那里详细解释了,希望对你有所帮助。 简而言之,您会收到第二个警告,即

D:\Anaconda3\lib\site-packages\gensim\models\ldaseqmodel.py:293: RuntimeWarning: divide by zero encountered in double_scalars
convergence = np.fabs((bound - old_bound) / old_bound)

因为old_bound 在gensim 的ldaseqmodel 的源代码中被初始化为zero,因为在这个表达式(bound - old_bound) / old_bound 中你实际上是在将上半部分除以零,这导致警告。因此,您只需忽略该警告,因为在第一次迭代后,old_bound 的值会更新,因此您将不会再次看到该警告。

【讨论】:

    猜你喜欢
    • 2020-12-01
    • 2019-05-08
    • 2021-07-19
    • 2011-04-15
    • 2016-10-13
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多