【问题标题】:LDA: topic model gensim gives same set of topicsLDA:主题模型 gensim 给出相同的主题集
【发布时间】:2023-10-24 06:25:01
【问题描述】:

为什么我在 gensim lda 模型中得到相同的主题集#字?我使用了这些参数。我检查了我的语料库中没有重复的文档。

lda_model = gensim.models.ldamodel.LdaModel(corpus=MY_CORPUS,
                                           id2word=WORD_AND_ID,
                                           num_topics=4, 
                                           minimum_probability=minimum_probability,
                                           random_state=100,
                                           update_every=1,
                                           chunksize=100,
                                           passes=10,
                                           alpha='auto', # symmetric, asymmetric
                                           per_word_topics=True)

结果

[
(0, '0.004*lily + 0.01*rose + 0.00*jasmine'),
(1, '0.005*geometry + 0.07*algebra + 0.01*calculation'),
(2, '0.003*painting + 0.001*brush + 0.01*colors'),
(3, '0.005*geometry + 0.07*algebra + 0.01*calculation')
]

注意:主题 #1 和 #3 相同。

【问题讨论】:

    标签: python nlp gensim lda topic-modeling


    【解决方案1】:

    每个主题都可能包含大量不同权重的单词。当显示一个主题时(例如使用lda_model.show_topics()),你只会得到几个权重最大的词。这并不意味着剩余词汇之间的主题之间没有差异。

    您可以控制显示的单词数量来检查剩余的权重:

     show_topics(num_topics=4, num_words=10, log=False, formatted=True)
    

    并更改 num_words 参数以包含更多单词。

    现在,还有一种可能:

    • 主题的数量应该不同(例如 3 个),
    • minimum_probability更小(您使用的值是多少?),
    • passes的数量更大,
    • chunksize 更小,
    • 语料库更大(大小是多少?)或去掉停用词(你这样做了吗?)。

    我鼓励您尝试这些参数的不同值,以检查是否有任何组合效果更好。

    【讨论】:

    • 谢谢。我设置为默认值的最小概率:1500 个文档为 0.01。有没有关于如何设置最小概率的好文章/quora?我会尝试不同的参数,看看是否会消失。
    • 我只能推荐我的其他答案:*.com/questions/50805556/…*.com/questions/65014553/…(顺便说一句,如果你觉得它们有用,你可以点赞它们会很棒;这个答案也是如此)。
    最近更新 更多