【问题标题】:LDA - Assigning keywords to topicsLDA - 为主题分配关键字
【发布时间】:2017-09-25 04:51:43
【问题描述】:

我有大约 150k 个文档的非结构化数据。我正在尝试使用无监督学习算法对这些文档进行分组。目前我在 gensim Python 中使用 LDA(潜在狄利克雷分配)。对于 LDAModel,我通过了 num_topics=20。因此,我的全部 150k 数据分为 20 个主题。

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

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

我采取的方法是: 计算每个主题的文档的单词分数总和,并将文档分配给得分最高的主题。然而,这并没有给我带来好的结果。

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

  1. 如何分配表示主题的主要关键字?

【问题讨论】:

  • 如果您的主题是预定义的,那么这是一个分类问题,而不是一个聚类问题。
  • 我已经修改了问题,预定义的含义我给了 20 作为 num_topics 的参数。

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


【解决方案1】:

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

一旦你有一个训练有素的模型,你就可以在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)

重新。 此代码将为您提供有关属于特定主题的级别的每个文档和每个单词的信息。这意味着自动为您完成每个单词的计算。

如何分配表示主题的主要关键字?

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


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

[*] 我摘录了上面的代码

【讨论】:

    猜你喜欢
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    相关资源
    最近更新 更多