簡體   English   中英

Gensim Mallet Wrapper:如何獲取所有文檔的主題權重?

[英]Gensim Mallet Wrapper: How can I get all documents' topic weights?

我正在使用 Gensim 的 Mallet 包裝器進行主題建模 -

LdaMallet(path_to_mallet_binary, corpus=corpus, num_topics=100, id2word=words, workers=6, random_seed=2)

盡管上述方法運行得非常快,但獲取每個文檔 (n=40,000) 的主題分布的步驟(見下文)需要很長時間。

#Store topic distributuon for all documents
all_topics=[]
for x in tqdm(range(0, len(doc_list))):
    all_topics.append(lda_model[corpus[x]])

完成 30,000 份文件大約需要 18 個小時。 不知道我做錯了什么。 有沒有辦法更快地獲得所有文檔的主題分布?

我可以通過 Python 的subprocess直接調用 Java mallet來加速。 文檔主題分布在一個文件中可用,該文件可以輕松導入到 dataframe。 gensim包裝器雖然簡單,但似乎有問題。

事實證明,大部分時間是加載 LdaMallet model 所花費的時間,當我一次性完成而不是一一完成時,我能夠在短短 4 分鍾內生成 50,000 個主題分布(它與您之前花費的時間相同) .

corpus = [dictionary.doc2bow(preprocess(unseen_document)) for unseen_documents in unseen_documents] 分布 = mallet_model [語料庫]

您可以參考https://github.com/RaRe-Technologies/gensim/issues/3018

暫無
暫無

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

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