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 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

scikits-learn pca 降维问题

如何将自定义参数与保留事件一起发送到 Firebase 分析

如何将自定义文件浏览器/上传与 CKEditor 集成?

如何将自定义视图与 TabBar 集成?

将自定义域与 Firebase 动态链接结合使用

将自定义 Fxcop 规则与现有 Fxcop 规则集成