了解 Gensim LDA 模型中的参数

Understanding parameters in Gensim LDA Model

我正在使用gensim.models.ldamodel.LdaModel执行LDA,但我不理解一些参数并且在文档中找不到解释。如果有人有这方面的经验,我会喜欢这些参数表示什么的更多细节。 具体我不懂:

我正在处理一个包含 500 个文档的语料库,每个文档大约有 3-5 页(不幸的是,由于保密原因,我无法共享数据快照)。目前我已经设置

但这完全基于我看到的一个例子,我不确定这对我的数据有多普遍。

不知道大家有没有看到this page

不管怎样,让我为你解释几件事。该方法使用的文档数量很少(在维基百科大小的数据源上训练时效果更好)。因此,结果将相当粗糙,您必须意识到这一点。这就是为什么你不应该针对大量主题(你选择了 10 个,在你的情况下可能明智地增加到 20 个)。

至于其他参数:

  • random_state - 这用作种子(如果您想完全重复训练过程)

  • chunksize - 一次考虑的文档数(影响内存消耗)

  • update_every - 每 update_every chunksize 个块更新模型(本质上,这是为了内存消耗优化)

  • passes - 算法应该遍历整个语料库多少次

  • alpha - 引用文档:

    can be set to an explicit array = prior of your choice. It also support special values of `‘asymmetric’ and ‘auto’: the former uses a fixed normalized asymmetric 1.0/topicno prior, the latter learns an asymmetric prior directly from your data.

  • per_word_topics - 将此设置为 True 允许提取给定单词的最可能主题。训练过程的设置方式是将每个单词分配给一个主题。否则,将省略不具有指示性的词。 phi_value 是引导此过程的另一个参数 - 它是一个词是否被视为指示性的阈值。

最佳训练过程参数在 M. Hoffman et al., Online Learning for Latent Dirichlet Allocation 中有特别详细的描述。

有关训练过程或模型的内存优化,请参阅 this blog post