LDA - 为主题分配关键字

时间:2017-04-27 11:52:15

标签: python-3.x cluster-analysis gensim lda unsupervised-learning

我有大约150k文档的非结构化数据。我试图使用无监督学习算法对这些文档进行分组。目前我在gensim Python中使用LDA(Latent Dirichlet分配)。对于LDAModel,我已经通过了num_topics = 20。因此,我的整个150k数据分为20个主题。

现在我有这些小组,我有两个问题:

  1. 我应该如何为这些主题分配新文档?
  2. 我采取的方法是: 计算每个主题的文档的单词分数之和,并将文档分配给分数最高的主题。然而,这并没有给我带来好成绩。

    有没有更好的方法来获得这个?

    1. 如何指定表示主题的主要关键字?

1 个答案:

答案 0 :(得分:0)

我应该如何为这些主题分配新文档?

获得经过培训的模型后,您可以通过以下方式查询文档的model

doc_bow = model.id2word.doc2bow(doc.split()) # convert to bag of words format first
doc_topics, word_topics, phi_values = model.get_document_topics(bow, per_word_topics=True)

重。 此代码将为您提供有关特定主题的归属级别的per-doc和per-words信息。这意味着每个单词的计算都是自动完成的。

如何指定表示该主题的主要关键字?

很难理解你的意思。表示主题的关键字及其权重是您使用语料库从培训中获得的实际LDA模型。

我想您可能有兴趣查看the following notebook [*],了解有关如何查询模型以获取有关文档的特定信息(每个单词主题信息等)的信息。

[*]我从中获取了上面代码的摘录