【问题标题】:LDA Gensim Word -> Topic Ids Distribution instead of Topic -> Word DistributionLDA Gensim Word -> 主题 ID 分布而不是主题 -> 词分布
【发布时间】:2015-06-27 09:09:41
【问题描述】:

我正在尝试在我训练有素的 lda 模型上实现主题平铺算法。 对于算法,我需要分配给未见过文档中单个单词的所有 ID。然后,我将计算给定单词的最常见主题 ID,并将其指定为该单词的模式。

我正在使用 gensim 库,因此很容易获得 topic->word dist,其中单词给出了它们的概率。但是我如何获得“哪些主题被分配给一个世界”,意思是单词->主题分布。

Example:
s = "Banks are closed on Sunday"

Topic -> Word Dist from Gensim:
TopicTag -> Prob*Word
Topic 0 -> 0,3*Bank, 0,2*are
Topic 1 -> 0,2*closed, 0,1*Sunday
Topic 2 -> 0,4*Sunday, 0,3*on

What I want:
word -> TopicTag(Frequency that given word was assigned with the specified topic tag)
Banks -> Topic1(2), Topic2(2)
Closed -> Topic0(1),Topic1 (4)

还请注意,我对解析来自 Gensim 的 Topic -> Word Dist 结果不感兴趣,我有兴趣找到一种准确的方式,让我的模型将(大量)主题分配给将出现的每个单词一个看不见的文件。

提前致谢。

【问题讨论】:

    标签: python lda topic-modeling gensim


    【解决方案1】:

    我也有兴趣知道答案。虽然,您可以通过以下方式获得 Topic -> Word Dist 而无需解析:

    y = ldavar.state.getlambda()
    for i in range(y.shape[0]):
        y[i] = y[i] / y[i].sum()
    

    现在 y 的每一行都会给你一个主题的词分布

    【讨论】:

      【解决方案2】:

      您可以从lda_model.get_lambda() 获取词-主题权重矩阵。 另请参阅此邮件列表线程:https://groups.google.com/d/msg/gensim/6N9-Y5KVQu0/soFqkEopMWgJ

      【讨论】:

        猜你喜欢
        • 2013-06-23
        • 2017-02-19
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 2017-10-27
        • 2020-12-25
        • 2023-03-26
        • 2017-12-31
        相关资源
        最近更新 更多