【问题标题】:Scikits-learn: Use custom vocabulary together with PipelineScikits-learn:将自定义词汇表与 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?谢谢!

【问题讨论】:

    标签: python machine-learning scikits scikit-learn


    【解决方案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 版本中。

    【讨论】:

      猜你喜欢
      • 2017-08-31
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2020-01-15
      相关资源
      最近更新 更多