在我的scikits-learn Pipeline中,我想将自定义词汇表传递给CountVectorizer():
text_classifier = Pipeline([
('count', CountVectorizer(vocabulary=myvocab)),
('tfidf', TfidfTransformer()),
('clf', LinearSVC(C=1000))
])
但是,据我所知,当我致电
时text_classifier.fit(X_train, y_train)
Pipeline使用CountVectorizer()的fit_transform()方法,忽略myvocab。我怎么能修改我的管道来使用myvocab?谢谢!
答案 0 :(得分:9)
这是scikit-learn中的一个错误,我修复了five minutes ago。感谢您发现它。我建议您从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版本中。