Как использовать sklearn TfidfVectorizer fit_transform для двух столбцов

#python #scikit-learn

#python #scikit-learn

Вопрос:

Не уверен, что это правильный способ применить fit_transform к обоим этим столбцам. В настоящее время я пишу классификатор для прогнозирования мошеннических объявлений о вакансиях. Меня интересуют столбцы «описание» и «требования». Я не знаю, есть ли способ выполнить оба преобразования в одной строке.

 preprocessor = TfidfVectorizer(stop_words='english', strip_accents='unicode', norm='l2', use_idf=False,smooth_idf=False)
XX = preprocessor.fit_transform(X["description"])
XX = preprocessor.fit_transform(X["requirements"])
  

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

1. Отвечает ли это на ваш вопрос [ссылка] ( github.com/scikit-learn/scikit-learn/issues/16148 )

2. не совсем, все еще не уверен, будет ли то, что я написал, работать для обоих столбцов

Ответ №1:

Я думаю, что вы неправильно интерпретируете документацию. Если вы хотите выполнить tfidf для двух столбцов, то вам нужно передать два преобразователя. Что-то вроде этого:

 tfidf_1 = TfidfVectorizer(min_df=0)
tfidf_2 = TfidfVectorizer(min_df=0)
clmn = ColumnTransformer([("tfidf_1", tfidf_1, "a"), 
                          ("tfidf_2", tfidf_2, "b")
                         ],
                         remainder="passthrough")