有人认为,使用词簇初始化主题模型可以获得更高质量的模型或更健壮(一致)的推理。我说的是初始化优化器,而不是设置优先级。下面是一些代码来说明我想要做的事情:
创建一个LdaModel对象,但不要传入一个语料库。
lda_model =
LdaModel(
id2word=id2word,
num_topics=30,
eval_every=10,
pass=40,
iterations=5000)接下来,指定对象的一些属性,对应于将主题中的每个单词绘制到我自己构造的矩阵的概率。
lda_model.topics = my_topic_mat然后配合语料库:
lda_model.update(corpus)谢谢你的帮助!
发布于 2018-06-30 20:24:51
实际上,设置优先级可能比初始化优化器更好。
有两个超参数alpha和eta,其中alpha是文档主题矩阵的先验,eta是主题词矩阵的先验。要影响主题中的单词概率,请尝试传递eta作为附加参数:
lda_model = gensim.models.ldamodel.LdaModel(num_topics=30, id2word=id2word, eta=your_topic_mat,
eval_every=10, iterations=5000)eta可以是对称优先于主题/词分布的标量,也可以是形状num_words的向量,用于将(用户定义的)不对称先验强加于单词分布。它还支持特殊的值‘auto’,它学习不对称的优先于直接从您的数据单词。eta也可以是形状num_topics x num_words的矩阵,它可以用于在每个主题的基础上对单词分布施加不对称的先验(不能从数据中学习)。
https://stackoverflow.com/questions/51092771
复制相似问题