在我的scikits learn pipeline中,我想将自定义词汇表传递给countvectorizer():
text_classifier = Pipeline([
('count', CountVectorizer(vocabulary=myvocab)),
('tfidf', TfidfTransformer()),
('clf', LinearSVC(C=1000))
])
不过,据我所知
text_classifier.fit(X_train, y_train)
管道使用countvectorizer()的fit_transform()方法,忽略myvocab。如何修改管道以使用myvocab?谢谢!
最佳答案
这是SCIKIT中的一个错误,我修正了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学习版本。