Scikits-learn: использовать пользовательский словарь вместе с Pipeline - PullRequest
5 голосов
/ 07 июля 2011

В моем конвейере scikits-learn я хотел бы передать пользовательский словарь CountVectorizer ():

text_classifier = Pipeline([
    ('count', CountVectorizer(vocabulary=myvocab)),
    ('tfidf', TfidfTransformer()),
    ('clf', LinearSVC(C=1000))
])

Однако, насколько я понимаю, когда я звоню

text_classifier.fit(X_train, y_train)

Pipeline использует метод Count_ectorizer () fit_transform (), который игнорирует myvocab.Как я могу изменить мой конвейер для использования myvocab?Спасибо!

1 Ответ

9 голосов
/ 09 июля 2011

Это была ошибка в scikit-learn, которую я исправил пять минут назад . Спасибо, что заметили это. Я предлагаю вам либо обновить Gitub до последней версии, либо отделить векторизатор от конвейера в качестве обходного пути:

count = CountVectorizer(vocabulary=myvocab)
X_vectorized = count.transform(X_train)

text_classifier = Pipeline([
    ('tfidf', TfidfTransformer()),
    ('clf', LinearSVC(C=1000))
])

text_classifier.fit(X_vectorized, y_train)

ОБНОВЛЕНИЕ : с момента публикации этого ответа это исправление было включено в несколько выпусков scikit-learn.

...