【发布时间】:2015-04-23 00:41:51
【问题描述】:
我正在使用 sklearn python 包,我无法使用预先创建的字典创建 CountVectorizer,其中 CountVectorizer 不会删除仅出现一次或根本不出现的功能.
这是我的示例代码:
train_count_vect, training_matrix, train_labels = setup_data(train_corpus, query, vocabulary=None)
test_count_vect, test_matrix, test_labels = setup_data(test_corpus, query, vocabulary=train_count_vect.get_feature_names())
print(len(train_count_vect.get_feature_names()))
print(len(test_count_vect.get_feature_names()))
len(train_count_vect.get_feature_names()) 输出 89967
len(test_count_vect.get_feature_names()) 输出9833
在setup_data() 函数内部,我只是在初始化CountVectorizer。对于训练数据,我在没有预设词汇表的情况下对其进行初始化。然后,对于测试数据,我使用从训练数据中检索到的词汇来初始化 CountVectorizer。
如何使词汇表的长度相同?我认为 sklearn 正在删除功能,因为它们在我的测试语料库中只出现一次或根本不出现。我需要有相同的词汇表,否则我的分类器将与我的测试数据点的长度不同。
【问题讨论】:
-
能否提供
seup_data的源代码?我们真的不可能在没有看到的情况下找出问题所在。 -
CountVectorizer 应该只有一个,而不是两个。 @SlaterTyranus 的回答解释了原因
标签: python machine-learning scikit-learn text-classification