gpt4 book ai didi

python - CountVectorizer max_features 如何处理具有相同频率的 ngram?

转载 作者:行者123 更新时间:2023-11-28 20:59:29 26 4
gpt4 key购买 nike

我有一个关于 CountVectorizer 和 TfidfVectorizer 的问题。

我不清楚如何在 max_features 中选择具有相同频率的 ngram。如果我们在一个语料库中说 max_features = 10000 和 100 个 ngrams 并且频率相同,那么 CountVectorizer 如何区分特征中的 ngram 和不特征中的 ngram?玩具示例,我们有一个包含八个独特单词的语料库。单词“jeans”和“cat”具有相同的频率 1。我们取 max_features=7。为什么特征中出现“cat”而“jeans”没有,反之则不然?

data = ['gpu processor cpu performance',
'gpu performance ram computer computer',
'cpu computer ram processor jeans processor cat']

cv = CountVectorizer(ngram_range=(1, 1), max_features=7)
cv_fit = cv.fit_transform(data).toarray()
cv.vocabulary_

out:
{'cat': 0,
'computer': 1,
'cpu': 2,
'gpu': 3,
'performance': 4,
'processor': 5,
'ram': 6}

最佳答案

CountVectorizer 会切断词频,并且可能会使用正常排序来切断 max_features 处的项目。

max_features : int or None, default=None If not None, build a vocabulary that only consider the top max_features ordered by term frequency across the corpus.

我将数据从 cat 更改为 zat,现在 jeans 已进入列表。

>>> data = ['gpu processor cpu performance',
'gpu performance ram computer computer',
'cpu computer ram processor zat processor jeans']
>>> cv = CountVectorizer(ngram_range=(1, 1), max_features=7)
>>> cv_fit = cv.fit_transform(data).toarray()
>>> cv.vocabulary_
{u'ram': 6, u'jeans': 3, u'processor': 5, u'computer': 0, u'performance': 4, u'gpu': 2, u'cpu': 1}

本质上它取决于排序顺序。

关于python - CountVectorizer max_features 如何处理具有相同频率的 ngram?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49491063/

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