Python 无法修复gensim中LDA模型中的种子值

Python 无法修复gensim中LDA模型中的种子值,python,numpy,gensim,Python,Numpy,Gensim,当使用LDA模型时,每次我都会得到不同的主题,我希望复制相同的主题集。我在谷歌搜索过类似的问题,比如 我通过num.random.seed(1000)修复了文章中所示的种子,但它不起作用。我阅读了ldamodel.py并找到以下代码: def get_random_state(seed): """ Turn seed into a np.random.RandomState instance. Method originally from maciejkula/glov

当使用LDA模型时,每次我都会得到不同的主题,我希望复制相同的主题集。我在谷歌搜索过类似的问题,比如

我通过
num.random.seed(1000)
修复了文章中所示的种子,但它不起作用。我阅读了
ldamodel.py
并找到以下代码:

def get_random_state(seed):

    """
    Turn seed into a np.random.RandomState instance.
    Method originally from maciejkula/glove-python, and written by @joshloyal
    """
     if seed is None or seed is numpy.random:
         return numpy.random.mtrand._rand
     if isinstance(seed, (numbers.Integral, numpy.integer)):
         return numpy.random.RandomState(seed)
     if isinstance(seed, numpy.random.RandomState):
        return seed
     raise ValueError('%r cannot be used to seed a numpy.random.RandomState'
                      ' instance' % seed)
所以我使用代码:

lda = models.LdaModel(
    corpus_tfidf,
    id2word=dic,
    num_topics=2,
    random_state=numpy.random.RandomState(10)
)

但它仍然不起作用。

语料库生成的词典。词典可能不同于同一语料库(例如相同的单词,但顺序不同)。因此,每次都应该修复词典以及种子以获得相同的主题。下面的代码可能有助于修复词典:

dic = corpora.Dictionary(corpus)
dic.save("filename")
dic=corpora.Dictionary.load("filename")

语料库生成的词典。词典
可能与相同的语料库不同(例如相同的单词但不同的顺序)。因此,每次都应该修复词典以及种子以获得相同的主题。下面的代码可能有助于修复词典:

dic = corpora.Dictionary(corpus)
dic.save("filename")
dic=corpora.Dictionary.load("filename")

我同意@Marcel.Shen的观点,即您应该将输入字典保存一次并再次使用,而不是每次都重新生成,从而将其修复到LDA模型。这也可能是你得到不同结果的原因


但我认为您得到不同结果的主要原因是,您每次运行时都会随机将
随机状态设置在0-10之间。只需将随机种子值设置为常数,如1

我同意@Marcel.Shen的观点,即您应该将输入字典保存一次并再次使用,而不是每次都重新生成,从而将其修复到LDA模型。这也可能是你得到不同结果的原因


但我认为您得到不同结果的主要原因是,您每次运行时都会随机将
随机状态设置在0-10之间。只需将随机种子值设置为常数,如1

longtime not log in stackoverflow(长时间不登录stackoverflow,我不知道是否为时已晚)…您可以将random_状态设置为0,而不是从random函数生成的值longtime not log in stackoverflow(长时间不登录stackoverflow,我不知道是否为时已晚)…您可以将random_状态设置为0,而不是从random函数生成的值