scikit-learn中的手动特征提取

时间:2014-10-02 04:43:12

标签: python scikit-learn

我尝试从文本数据集中手动提取要素并将其提供给sklearn管道,如下所示 -

clf_SVM = Pipeline([
  ('features', FeatureUnion([
      ('tf_idf', TfidfVectorizer(ngram_range=(1,3), use_idf=True, analyzer='word', lowercase=True, encoding='utf-8', stop_words='english', tokenizer=prepro.tok, min_df=3))
    ('manual_features', prepro.extractmanualfeatures())
  ])),
  ('chi2', SelectKBest(chi2, k=1200)),
  ('classifier', LinearSVC())
])

我使用FeatureUnion从tf_idf中提取特征f1并从manual_features中提取f2并将它们组合在一起,即两个提取在同一数据集上并行运行。

现在我想首先运行manual_features,然后在生成的语料库运行tf_idf。由于manual_features是一个令牌提取器,我可以在tf_idf的tokenizer参数中提供它,它可以正常工作。

这里的问题是我在manual_features提取器中提供了一些规则,例如提取出现" can + any_word {0,3} + POS-verb"文本中的模式。如果这个提取器在tf_idf中作为tokenizer的一部分工作,那么它会考虑"你能做什么"和"你能工作吗?作为不同的功能,而我希望它们都被视为相同的功能类型,即"可以+ + POS-verb"。怎么做到这一点?

0 个答案:

没有答案