Как использовать, чтобы использовать 2 TfidfVectorizer в одной и той же задаче классификации с помощью FeatureUnion

#python #machine-learning #scikit-learn #nlp #text-classification

Вопрос:

Возможно ли / целесообразно теоретически использовать более одного TfidfVectorizer в одной и той же задаче?

Итак, у меня есть этот конвейер, в котором я использую метаданные для задачи классификации, такой как длина текста, отсутствие токенов и т. Д.

 def get_numeric_data(df):  return [record[:-2].astype(float) for record in df]  def get_text_data(df):  return [record[-1] for record in df]  transfomer_numeric = FunctionTransformer(get_numeric_data) transformer_text = FunctionTransformer(get_text_data)  # Create a pipeline to concatenate Tfidf Vector and Numeric data # Use RandomForestClassifier as an example pipeline = Pipeline([  ('features', FeatureUnion([  ('numeric_features', Pipeline([  ('selector', transfomer_numeric)  ])),  ('text_features', Pipeline([  ('selector', transformer_text),  ('vec', TfidfVectorizer(analyzer='word'))  ]))  ])),  ('clf', RandomForestClassifier()) ])  

У меня есть уникальная проблема, когда в одном конвейере у меня есть только текст, а в другом-латекс, где я использую специальные символы и специальные символы.

Я хочу знать, могу ли я использовать 2 разных TfidfVectorizer в этой задаче? И если да, то как я могу это сделать?

Комментарии:

1. Чтобы надежно ответить на этот вопрос, нам может потребоваться дополнительная информация о приложении/наборе данных, для которых вы используете токенизатор. Вы собираетесь анализировать документы со смешанным содержанием Латекса и юникода? Или вы собираетесь анализировать документы на их содержимое в юникоде и Латексе отдельно и анализировать их независимо? Какова конечная цель?

2. Я тестирую возможность передачи текста и латекса отдельно. Я пробовал вместе, но токенизатор должен отличаться для текста и латекса.