Gensim的主题建模HDP模型(gensim.models.hdpmodel.HdpModel)有一个构造函数,它接受一个名为max_chunks
的参数。
在文档中,它说max_chunks
是模型将经过的块数,如果它大于提供的语料库中的块数,则训练将环绕语料库。
由于INFO日志警告我,似然函数一直在减少,我想我可能需要在语料库上多次传递才能收敛。
LDA模型为passes
参数提供了在多次迭代中训练语料库的功能。我很难弄清楚HDP中的max_chunks
如何映射到LDA中的passes
。
例如,假设我的语料库有1000000个文档。 max_chunks
需要准确的是为了训练我的语料库中的3次传递。
有什么建议吗?非常感谢
答案 0 :(得分:0)
chunksize
,passes
和update_every
选项可能有点令人困惑。帮助我的是link,特别是Chunksize, Passes, and Update_every
因此,在您的情况下,如果您执行batch-LDA并将update_every
设置为0并将chunksize
设置为文档数量,并将passes
设置为3,则应该在完整的语料库上获得三遍。
如果online-LDA,update_every
设置为1,您还可以使用chunksize
来控制每次传递的小批量大小。
答案 1 :(得分:0)
class gensim.models.hdpmodel.HdpModel(corpus, id2word, max_chunks=None, max_time=None, chunksize=256, kappa=1.0, tau=64.0, K=15, T=150, alpha=1, gamma=1, eta=0.01, scale=1.0, var_converge=0.0001, outputdir=None, random_state=None)
我认为,如果您有1000000个文档,那么如果使用默认的块大小256,则必须具有max_chunks = 100000/256 * 3才能强制3次通过。
我也收到WARNING : likelihood is decreasing!
消息,我认为我的语料太小(608个短文本),而且太统一了,无法在其中找到主题。