高效地将gensim TransformedCorpus数据转换为数组

3
有没有更直接或更有效的方法将gensim.interfaces.TransformedCorpus对象中的主题概率数据转换为numpy数组(或者是pandas dataframe)比下面逐行的方法更好?
from gensim import models
import numpy as np

num_topics = 5
model = models.LdaMulticore(corpus, num_topics=num_topics, minimum_probability=0.0)

all_topics = model.get_document_topics(corpus)
num_docs = len(all_topics)

lda_scores = np.empty([num_docs, num_topics])

for i in range(0, num_docs):
    lda_scores[i] = np.array(all_topics[i]).transpose()[1]
1个回答

8
可能有点晚了,但是gensim有一个辅助函数可以将数据转换为numpy/scipy数组并进行相互转换。
您正在寻找的内容是:

gensim.matutils.corpus2csc

您可以将输出转换为numpy数组或pandas数据框,根据您的需要。
import gensim
import numpy as np

all_topics_csr = gensim.matutils.corpus2csc(all_topics)
all_topics_numpy = all_topics_csr.T.toarray()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接