gpt4 book ai didi

python - ValueError : After pruning, 没有条款保留。尝试较低的 min_df 或较高的 max_df

转载 作者:行者123 更新时间:2023-11-28 22:35:58 25 4
gpt4 key购买 nike

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vectorizer = TfidfVectorizer(max_df=0.95, max_features=200000,
min_df=.5, stop_words='english',
use_idf=True,sublinear_tf=True,tokenizer = tokenize_and_stem_body,ngram_range=(1,3))
tfidf_matrix_body = tfidf_vectorizer.fit_transform(totalvocab_stemmed_body)

上面的代码给了我错误

ValueError: After pruning, no terms remain. Try a lower min_df or a higher max_df.

谁能帮我解决这个问题,我已经将所有值 80 更改为 100,但问题仍然存在?

最佳答案

从文档中, scikit-learn, TF-IDF vectorizer ,

ma​​x_df : 在 [0.0, 1.0] 或 int 范围内 float ,默认值=1.0

构建词汇表时,忽略文档频率严格高于给定阈值的术语(特定于语料库的停用词)。如果是float,参数代表文档的比例,整数绝对计数。如果 vocabulary 不是 None,则忽略此参数。

min_df : 在 [0.0, 1.0] 或 int 范围内 float ,默认=1

构建词汇表时,忽略文档频率严格低于给定阈值的术语。该值在文献中也称为截止值。如果是float,参数代表文档的比例,整数绝对计数。如果 vocabulary 不是 None,则忽略此参数。

请检查变量的数据类型,totalvocab_stemmed_body。如果它是一个列表,则列表中的每个元素都被视为一个文档。

情况 1:文档数量 =20,00,000,min_df=0.5

如果您有大量文件(比如 200 万),并且每个文件只有几个词,并且来自非常不同的域,则出现最少 10,00,000 个词的可能性很小( 20,00,000 * 0.5 ) 个文档。

情况 2:文档数量=200,max_df=0.95

如果您有一组重复的文件(比如 200 个),您会发现这些术语出现在大多数文档中。使用 max_df=0.95,您是在告诉那些存在于超过 190 个文件中的术语,不要考虑它们。在这种情况下,所有项或多或少都会重复,您的向量化器将无法找到矩阵的任何项。

这是我对这个话题的看法。

关于python - ValueError : After pruning, 没有条款保留。尝试较低的 min_df 或较高的 max_df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37815899/

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