在我的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学习版本。

07-24 09:52