5

私のscikits-learnPipelineでは、カスタム語彙をCountVectorizer()に渡したいと思います。

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

しかし、私が電話するとき私が理解する限り

text_classifier.fit(X_train, y_train)

Pipelineは、myvocabを無視するCountVectorizer()のfit_transform()メソッドを使用します。myvocabを使用するようにパイプラインを変更するにはどうすればよいですか?ありがとう!

4

1 に答える 1

9

これはscikit-learnのバグで、 5分前に修正しました。それを見つけてくれてありがとう。回避策として、Githubから最新バージョンにアップグレードするか、ベクトライザーをパイプラインから分離することをお勧めします。

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リリースに組み込まれています。

于 2011-07-08T23:19:05.560 に答える