我想在TF矩阵上进行奇异值分解。但是TF-国防军矩阵给了我这样的东西(术语指数,分数):
[(1,0.2) , (2,0.3) , (6,0.1) ...]
[(3,0.2) , (5,0.3) , (10,0.1) ...]因此,代码u,s,v = svd(corpus_tfidf)将无法在其上工作。我想要一个只有分数的TF-国防军矩阵,而不是术语索引。
我这样计算过TF-国防军:
tfidf = models.TfidfModel(corpus)
corpus_tfidf=tfidf[corpus]发布于 2016-12-25 11:46:56
如果使用gensim生成tfidf,则可以使用matutils将tfidf表示转换为稠密的numpy ndarray,反之亦然。
from gensim import matutils
tfidf_dense = matutils.corpus2dense(corpus_tfidf, num_terms).T其中,num_terms是您的语料库中的一些独特术语。可以这样计算:
num_terms = len(corpus_tfidf.obj.idfs)https://stackoverflow.com/questions/41320433
复制相似问题