Scikit learn 如何使用Sklearn忽略短文档?

Scikit learn 如何使用Sklearn忽略短文档?,scikit-learn,countvectorizer,Scikit Learn,Countvectorizer,我正在使用Sklearn的CountVectorizer将我的文本文档转换为文章单词共现矩阵。 它工作得很好,但是我希望它排除与包含少于k个单词的文档相对应的行 from sklearn.feature_extraction.text import CountVectorizer vectorizer = CountVectorizer() X = vectorizer.fit_transform(doc) for i in range(len(data)): if sum(X[i,:])&l

我正在使用Sklearn的CountVectorizer将我的文本文档转换为文章单词共现矩阵。 它工作得很好,但是我希望它排除与包含少于k个单词的文档相对应的行

from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(doc)

for i in range(len(data)):
if sum(X[i,:])<k:
    count += 1
我曾尝试通过simple for loop实现这一点,但由于我使用的是备用阵列,因此无法实现。这也不是最优雅的代码——一定有更好的方法

下面的代码查找共现矩阵X,循环遍历每行并检查是否有超过k个字

from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(doc)

for i in range(len(data)):
if sum(X[i,:])<k:
    count += 1
您可以使用如下所示的:

from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(doc)
k = 100
X_reduced = X[X.getnnz(axis=1)>=k]

希望这有帮助

你是说稀疏数组吗?如果是,您使用的实际数据结构是什么?例如,它是一个scipy稀疏矩阵吗?