【问题标题】:Gensim HDP topic model: How to train on multiple passes of corpus?Gensim HDP 主题模型:如何在多遍语料库上进行训练?
【发布时间】:2017-03-28 21:29:10
【问题描述】:

Gensim 的主题建模 HDP 模型 (gensim.models.hdpmodel.HdpModel) 有一个构造函数,该构造函数接受一个名为 max_chunks 的参数。

在文档中,它说max_chunks 是模型将遍历的块数,如果它大于提供的语料库中的块数,则训练将围绕语料库进行。

自从 INFO 日志警告我似然函数一直在下降,我想我可能需要在语料库上多次通过才能收敛。

LDA 模型通过 passes 参数提供了在语料库上进行多次迭代训练的功能。我很难弄清楚 HDP 中的 max_chunks 如何映射到 LDA 中的 passes

例如,假设我的语料库有 1000000 个文档。 max_chunks 必须是什么才能在我的语料库上训练 3 次传球。

有什么建议吗?非常感谢

【问题讨论】:

    标签: nlp gensim lda topic-modeling


    【解决方案1】:

    chunksizepassesupdate_every 选项可能有点令人困惑。对我有帮助的是这个link,特别是Chunksize, Passes, and Update_every部分

    因此,在您的情况下,如果您正在执行 batch-LDA 并将 update_every 设置为 0 并将 chunksize 设置为文档数,将 passes 设置为 3 您应该通过完整的语料库获得三遍。

    如果是online-LDA,其中update_every 设置为1,您还可以使用chunksize 来控制每次传递的小批量大小。

    【讨论】:

      【解决方案2】:

      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 条短文本)而且太统一,无法在其中找到主题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 2021-10-22
        • 1970-01-01
        • 2022-11-04
        • 2020-08-08
        • 2019-09-19
        • 1970-01-01
        相关资源
        最近更新 更多