在我的scikits-learn管道中,我想将一个自定义词汇表传递给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。如何修改我的Pipeline以使用myvocab?谢谢!
发布于 2011-07-08 23:19:06
这是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)
UPDATE:自从这个答案发布以来,这个修复已经包含在几个scikit learn版本中。
https://stackoverflow.com/questions/6608241
复制