在scikitlearn中为tfidfTransformer添加功能

时间:2016-11-21 13:43:14

标签: python-3.x scikit-learn text-extraction grid-search countvectorizer

我尝试添加功能以便对文档进行分类。但我的问题是如果我的矩阵的大小与样本的数量不对应,如何添加功能。这是我的估算员

class Add(BaseEstimator, TransformerMixin):
    def __init__(self):
        pass

    def transform(self, X, y=None):
        print(type(X))
        print('Dans Add X vaut:', X.shape)
        return X

    def fit(self, X, y = None):
        return self

pipeline = Pipeline([
       ('vect', TfidfVectorizer()),
       ('add_features', Add()),
       ('clf', SGDClassifier())
])
parameters = {'vect__max_features': (3000,5000)}
data  = load_files('./HO_without_tag', categories=None)
X , Y = (data.data, data.target)
print(len(X), len(Y))
grid_search = GridSearchCV(pipeline, param_grid = parameters, n_jobs = 1, verbose = 1000)
grid_search.fit(X,Y).transform(X)

但在我的结果中,我并不打印所有内容......

Fitting 3 folds for each of 1 candidates, totalling 3 fits
[CV] vect__max_features=3000
<class 'scipy.sparse.csr.csr_matrix'>
Dans Addned X vaut: (323, 3000)
<class 'scipy.sparse.csr.csr_matrix'>
Dans Addned X vaut: (163, 3000)
.......

我不明白这意味着什么(323,3000)和(163,3000)???

通常我有486个文件(文件)。如果我想在我的transform方法中添加一些功能,我只需要将第一个管道tdfIdfVectorizer(我的理解中为(486,3000))给出的数组连接到我的新形状的数组(486,我的数字)特征)。 现在,我不能将我的变换方法个性化,因为,此时我的行维度不兼容。 提前感谢您的帮助。

0 个答案:

没有答案