gpt4 book ai didi

scipy - tf idf 上截断的 svd 给出值错误数组太大

转载 作者:行者123 更新时间:2023-12-04 04:33:13 24 4
gpt4 key购买 nike

我正在尝试在 scikit-learn 中由 TfidfVectorizer 给出的稀疏矩阵上应用 TruncatedSVD.fit_transform() ,它给出:

    tsv = TruncatedSVD(n_components=10000,algorithm='randomized',n_iterations=5)
tfv = TfidfVectorizer(min_df=3,max_features=None,strip_accents='unicode',analyzer='word',token_pattern=r'\w{1,}',ngram_range=(1, 2), use_idf=1,smooth_idf=1,sublinear_tf=1)
tfv.fit(text)
text = tfv.transform(text)
tsv.fit(text)

Value error : array is too big

我可以使用哪些其他方法或降维。

最佳答案

我很确定问题是:

tsv = TruncatedSVD(n_components=10000...

您的 SVD 中有 10000 个组件。如果您有一个 m x n 数据矩阵,SVD 将具有维度为 m x n_components 和 n_components x n 的矩阵,即使数据稀疏,这些矩阵也会很密集。这些矩阵可能太大了。

我复制了你的代码并在 Kaggle Hashtag 数据(我认为这是来自)上运行它,在 300 个组件中,python 使用了高达 1GB。在 10000 时,您将使用大约 30 倍。

顺便说一句,您在这里所做的是潜在语义分析,这不太可能从这么多组件中受益。 50-300 范围内的某处应该捕获所有重要的内容。

关于scipy - tf idf 上截断的 svd 给出值错误数组太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20216743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com