Scikits-learn:将自定义词汇表与 Pipeline 一起使用
Posted
技术标签:
【中文标题】Scikits-learn:将自定义词汇表与 Pipeline 一起使用【英文标题】:Scikits-learn: Use custom vocabulary together with Pipeline 【发布时间】:2011-09-30 07:07:17 【问题描述】:在我的 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。如何修改我的管道以使用 myvocab?谢谢!
【问题讨论】:
【参考方案1】:这是 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 版本中。
【讨论】:
以上是关于Scikits-learn:将自定义词汇表与 Pipeline 一起使用的主要内容,如果未能解决你的问题,请参考以下文章