我不想将topic_word_prior设置为参数,而是根据预定义的文字分布来初始化主题。如何在sklearn的实现中设置这个初始主题分布?如果不可能,是否有更好的实施需要考虑?
如果您在预先训练的模型中有预定义的单词分布,则可以将bow_corpus作为函数传递给该分布。 Gensims LDA和LDAMallet都可以进行一次训练,然后您可以通过新的数据集进行分配,而无需更改主题。
脚步:
dictionary = gensim.corpora.Dictionary(processed_docs[:])
dictionary.filter_extremes(no_below=15, no_above=0.5, keep_n=100000)
bow_corpus = [dictionary.doc2bow(doc) for doc in processed_docs]
ldamallet = gensim.models.wrappers.LdaMallet(mallet_path,
corpus=bow_corpus, num_topics=15, id2word=dictionary)
ldamallet[bow_corpus_new[:len(bow_corpus_new)]]