【问题标题】:How to get the topic-word probabilities of a given word in gensim LDA?如何在 gensim LDA 中获取给定单词的主题词概率?
【发布时间】:2017-08-08 16:14:49
【问题描述】:

据我了解,如果我在字典大小为 1000 且没有主题 (K) = 10 的语料库上训练 LDA 模型,则对于字典中的每个单词,我应该有一个大小为10 向量中的每个位置是那个词属于那个特定主题的概率,对吧?

所以我的问题是给定一个词,这个词属于主题 k 的概率是多少,其中 k 可以是 1 到 10,我如何在 gensim lda 模型中获得这个值?

我使用的是get_term_topics 方法,但它不会输出所有主题的所有概率。例如,

lda_model1.get_term_topics("fun")
[(12, 0.047421702085626238)],

但我想看看在所有其他主题中“有趣”的可能性是什么?

【问题讨论】:

    标签: gensim lda topic-modeling


    【解决方案1】:

    对于正在寻找答案的人,我找到了。

    这些概率值在xx.expElogbeta numpy 数组中。此矩阵中的行数等于主题数,列数是您的字典(单词)的大小。因此,如果您获得特定列的值,您将获得该词属于所有主题的概率。

    例如,

    >>> data = np.load("model.expElogbeta.npy")
    >>> data.shape
    (20, 6481) # i have trained with 20 topics == no of rows
    >>> dict = corpora.Dictionary.load(dictf)
    >>> len(dict.keys())
    6481 #columns of the npy array is the words in my dict
    

    src = https://groups.google.com/forum/?fromgroups=#!searchin/gensim/lda$20topic-word$20matrix/gensim/Qoj7Agkx3qE/r9lyfihC4b4J

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      相关资源
      最近更新 更多