如何使用Sklearn忽略简短文档?

时间:2019-08-08 22:22:10

标签: scikit-learn countvectorizer

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

我试图通过简单的for循环来做到这一点,但是当我使用备用阵列时,它不起作用。它也不是最优雅的代码-必须有更好的方法!

下面的代码找到同现矩阵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

1 个答案:

答案 0 :(得分:1)

您可以使用getnnz,如下所示:

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

希望这会有所帮助!