首要问题是:
我认为在模型TruncatedSVD
上运行SparseVectors
中的fit_transform
将产生具有维度的组件(n个样本,n个组件),正如前面提到的here(跳到fit_transform
部分)。在
但是,我得到了一个形状矩阵(n_分量,n_个单词)。在
下面是一个简单的例子来重现这个问题:
def build_tfidf_model(corpus):
transformer = TfidfVectorizer(analyzer='word')
matrix = transformer.fit_transform(corpus)
return matrix
def svd_tfidf_matrix(matrix):
svd = TruncatedSVD(n_components=3)
svd.fit_transform(matrix)
return svd.components_
corpus = ['sentence one', 'sentence two', 'another one', 'another sentence', 'two sentence', 'one sentence']
tfidf_model = build_tfidf_model(corpus)
reduced_vectors = svd_tfidf_matrix(matrix=tfidf_model)
所以,tfidf_model.shape
产生{
然而,reduced_vectors.shape
产生{(6,3)
的形状。在
我一定是误解了调用fit_transform
应该返回什么。我可以调用什么来让SVD
返回一个矩阵,其中行是文档,列是缩减空间中的特性?在
如果希望在变换空间中表示输入,则fit_transform将返回该对象。当前调用它时没有将结果赋给变量。这个模型组件属性只描述如何将tfidf向量空间转换为svd空间。在
相关问题 更多 >
编程相关推荐