【发布时间】:2015-08-04 06:32:24
【问题描述】:
我正在使用 CountVectorizer 为每个文档生成向量。就我而言,文档是由 1-5 个单词组成的短文本。
for i, doc in enumerate(documents):
if doc: # make sure there is no empty document.
corpus.append(doc)
countVectorizer = CountVectorizer()
weight_arr = countVectorizer.fit_transform(corpus)
for doc_index, count_vector in enumerate(weight_arr):
nonzero_feature_indice = count_vector.nonzero()[1] # [1]: unique column index
if nonzero_feature_indice.size == 0:
print "EMPTY ROW!"
我使用 CountVectorizer 的默认参数。我不会删除停用词并设置任何可能生成空文档的阈值。
{'binary': False, 'lowercase': True, 'stop_words': None, 'decode_error': u'strict', 'vocabulary': None, 'tokenizer': None, 'encoding': u'utf-8', 'dtype': <type 'numpy.int64'>, 'analyzer': u'word', 'ngram_range': (1, 1), 'max_df': 1.0, 'min_df': 1, 'max_features': None, 'input': u'content', 'strip_accents': None, 'token_pattern': u'(?u)\\b\\w\\w+\\b', 'preprocessor': None}
我发现 weight_arr 中有几行全为零。为什么这可能?
【问题讨论】:
-
您是否有可能只有一个字母的文档?标记器过滤掉这些。
-
@user3914041 是的。我认为这是可能的。你知道如何禁用删除一个字母吗?
标签: python numpy scikit-learn