我有大约150k文档的非结构化数据。我试图使用无监督学习算法对这些文档进行分组。目前我在gensim Python中使用LDA(Latent Dirichlet分配)。对于LDAModel,我已经通过了num_topics = 20。因此,我的整个150k数据分为20个主题。
现在我有这些小组,我有两个问题:
我采取的方法是: 计算每个主题的文档的单词分数之和,并将文档分配给分数最高的主题。然而,这并没有给我带来好成绩。
有没有更好的方法来获得这个?
答案 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 [*],了解有关如何查询模型以获取有关文档的特定信息(每个单词主题信息等)的信息。
[*]我从中获取了上面代码的摘录