如何解决我收到运行时警告:使用ldaseq时,在double_scalars中遇到无效值并在double_scalars中遇到零除
在gensim中使用ldaseqmodel时,我收到运行时间警告:
D:\ Anaconda3 \ lib \ site-packages \ gensim \ models \ ldaseqmodel.py:1474: RuntimeWarning:double_scalars中遇到无效值
收敛= np.fabs((lhood_old-lhood)/(lhood_old *总数)) 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个博客文章。
请帮助我!非常感谢!
解决方法
您收到的第一个警告;即
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
中 ldaseqmodel
的源代码中 gensim
被初始化为 zero 因为在这个表达式 (bound - old_bound) / old_bound
中你实际上是将上部除以零,这会导致警告。因此,您只需忽略该警告,因为在第一次迭代后 old_bound
的值会更新,因此您将不会再次看到警告。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。