簡體   English   中英

如何獲取pyLDAvis中特定相關度量值(lambda)的每個主題的單詞列表?

[英]How to get list of words for each topic for a specific relevance metric value (lambda) in pyLDAvis?

我使用 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

首先,這些結果與我在可視化中觀察到的 lambda 為 0.1 的結果無關。 其次,我看不到由主題分隔的結果。

你可能想閱讀這個 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM