Scikit-learn Pipeline - 变压器的执行顺序

问题描述 投票:2回答:1

我正在研究一个文本分类器,我想对其进行以下操作

  1. 使用客户转换器TextCounts在文本上创建新功能(如单词数,哈希标签数等)
  2. 使用自定义转换器CleanText清理文本并在其上应用CountVectorizer
  3. 将步骤1和2的功能组合为我的分类器的输入

我设法为此创建了一个Pipeline,但我不确定它是否像上面解释的那样运行。

features = FeatureUnion(n_jobs=-1,
    [('textcounts', TextCounts())
    , Pipeline([
        ('cleantext', CleanText())
        , ('vect', vect)
        ])
    ])

pipeline = Pipeline([
    ('features', features)
    , ('clf', clf)
])

实际上,我不确定是否将CountVectorizer应用于已清理的文本或原始文本。有没有办法解决这个问题?谢谢!

python scikit-learn pipeline
1个回答
0
投票

FeatureUnion中的步骤将并行应用(因为您允许尽可能多的作业,因为您拥有n_jobs = -1的核心,甚至实际并行)。所以,是的,CountVectorizer将应用于已清理的文本。

我认为this博客文章中的图片非常清楚。

关于“有没有找到方法?”,请参阅my answer here以获得更多问题。

© www.soinside.com 2019 - 2024. All rights reserved.