LDA:主题模型gensim给出相同的主题集
LDA: topic model gensim gives same set of topics
为什么我在 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 相同。
每个主题都可能包含大量权重不同的单词。当显示一个主题时(例如使用 lda_model.show_topics()
),您只会得到几个权重最大的词。这并不意味着剩余词汇中的主题之间没有差异。
您可以控制显示的字数来检查剩余的权重:
show_topics(num_topics=4, num_words=10, log=False, formatted=True)
并更改 num_words
参数以包含更多单词。
现在,还有一种可能是:
- 主题数量应该不同(例如 3),
- 或
minimum_probability
更小(你用的是什么值?),
- 或
passes
个数较大,
chunksize
更小,
- 语料库更大(大小是多少?)或去除停用词(你这样做了吗?)。
我鼓励您对这些参数的不同值进行试验,以检查是否有任何组合效果更好。
您需要将 alpha 参数更改为 50/i,其中 i 是您的主题编号并使用 eta 参数。 (eta = 0.1)
喜欢这个代码:
lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus,
id2word=id2word,
num_topics=4,
update_every=1,
chunksize=100,
passes=10,
alpha=50/4,
eta = 0.1,
per_word_topics=True)
为什么我在 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 相同。
每个主题都可能包含大量权重不同的单词。当显示一个主题时(例如使用 lda_model.show_topics()
),您只会得到几个权重最大的词。这并不意味着剩余词汇中的主题之间没有差异。
您可以控制显示的字数来检查剩余的权重:
show_topics(num_topics=4, num_words=10, log=False, formatted=True)
并更改 num_words
参数以包含更多单词。
现在,还有一种可能是:
- 主题数量应该不同(例如 3),
- 或
minimum_probability
更小(你用的是什么值?), - 或
passes
个数较大, chunksize
更小,- 语料库更大(大小是多少?)或去除停用词(你这样做了吗?)。
我鼓励您对这些参数的不同值进行试验,以检查是否有任何组合效果更好。
您需要将 alpha 参数更改为 50/i,其中 i 是您的主题编号并使用 eta 参数。 (eta = 0.1)
喜欢这个代码:
lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus,
id2word=id2word,
num_topics=4,
update_every=1,
chunksize=100,
passes=10,
alpha=50/4,
eta = 0.1,
per_word_topics=True)