machine-learning - 是否可以为 scikit-learn LDA 设置初始主题分配?

标签 machine-learning scikit-learn lda latent-semantic-analysis

我不想将 topic_word_prior 设置为参数,而是想根据预定义的单词分布来初始化主题。我如何在 sklearn 的实现中设置这个初始主题分布?如果不可能,是否有更好的实现可以考虑?

最佳答案

如果您在预训练模型中有预定义的单词分布,则只需将 Bow_corpus 作为函数传递到该分布即可。 Gensims LDA 和 LDAMallet 都可以训练一次,然后您可以传递新的数据集进行分配,而无需更改主题。

步骤:

  1. 导入您的数据
  2. 清理数据:剔除标点符号、数字、词形还原、删除停用词和词干
  3. 创建字典

    dictionary = gensim.corpora.Dictionary(processed_docs[:])
    dictionary.filter_extremes(no_below=15, no_above=0.5, keep_n=100000)
    
  4. 定义弓语料库

    bow_corpus = [dictionary.doc2bow(doc) for doc in processed_docs]
    
  5. 训练您的模型 - 如果已经训练过则跳过

    ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, 
                corpus=bow_corpus, num_topics=15, id2word=dictionary)
    
  6. 导入新数据并按照步骤 1-4 操作

  7. 通过模型传递新数据,如下所示:

      ldamallet[bow_corpus_new[:len(bow_corpus_new)]]
    
  8. 您的新数据现已分配,您可以将其放入 CSV 中

关于machine-learning - 是否可以为 scikit-learn LDA 设置初始主题分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55753444/

相关文章:

algorithm - 用于估计分数的分类算法

python - 如何将不平衡库与 sklearn pipeline 一起使用?

python - 使用语言模型进行术语加权

machine-learning - 如何从 RGB 中获取真实颜色

python - 如何用树木的森林来标记特征的重要性?

scikit-learn - 我们可以选择在 sklearn 中使用什么决策树算法吗?

python - 属性错误: module 'sklearn.metrics._dist_metrics' has no attribute 'DatasetsPair'

hadoop - 我如何使用 apache mahout 实现 LDA?

python - 使用 LDA 和 Gensim 推断新的、未见过的文档的主题分布

python - 使用 gensim 将 LDA 应用于语料库进行训练