2

我正在使用 pyLDAvis 和 gensim.models.LdaMulticore 进行主题建模。我总共有10个主题。当我使用 pyLDAvis 可视化结果时,有一个名为 lambda 的栏,其解释是:“滑动以调整相关性指标”。我有兴趣分别为 lambda = 0.1 提取每个主题的单词列表。我找不到在文档中调整 lambda 以提取关键字的方法。

我正在使用这些行:

if 1 == 1:
    LDAvis_prepared = pyLDAvis.gensim_models.prepare(lda_model, corpus, id2word, lambda_step=0.1)
LDAvis_prepared.topic_info

这些是结果:

   Term     Freq        Total       Category logprob loglift
321 ra      2336.000000 2336.000000 Default 30.0000 30.0000
146 may     1741.000000 1741.000000 Default 29.0000 29.0000
66  doctor  1310.000000 1310.000000 Default 28.0000 28.0000

首先,这些结果与我在可视化中使用 0.1 的 lambda 观察到的结果无关。其次,我看不到按主题分开的结果。

4

1 回答 1

2

您可能想阅读这个 github 页面: https ://nicharuc.github.io/topic_modeling/

根据这个例子,你的代码可能是这样的:

lambd = 0.6 # a specific relevance metric value

all_topics = {}
num_topics = lda_model.num_topics
num_terms = 10 

for i in range(1,num_topics): 
    topic = LDAvis_prepared.topic_info[LDAvis_prepared.topic_info.Category == 'Topic'+str(i)].copy()
    topic['relevance'] = topic['loglift']*(1-lambd)+topic['logprob']*lambd
    all_topics['Topic '+str(i)] = topic.sort_values(by='relevance', ascending=False).Term[:num_terms].values
pd.DataFrame(all_topics).T
于 2021-11-24T10:43:51.167 回答