Sklearn: Recursos de texto e numéricos com o ColumnTransformer têm erro de valor
Estou tentando usar o SKLearn 0.20.2 para criar um pipeline enquanto uso o novo recurso ColumnTransformer. Meu problema é que, quando executo meu classificador:clf.fit(x_train, y_train)
Eu continuo recebendo o erro:
ValueError: all the input array dimensions except for the concatenation axis must match exactly
Tenho uma coluna de blocos de texto chamadatext
. Todas as minhas outras colunas são de natureza numérica. Estou tentando usar o Countvectorizer no meu pipeline e acho que é aí que está o problema. Gostaria muito de ter uma mão com iss
Depois que eu executo o pipeline e verifico meu x_train / y_train, isso se parece útil (omitir os números das linhas que normalmente aparecem na coluna da esquerda e a coluna de texto fica mais alta do que a mostrada na imagem
from sklearn.impute import SimpleImputer
from sklearn.compose import ColumnTransformer
# plus other necessary modules
# mapped to column names from dataframe
numeric_features = ['hasDate', 'iterationCount', 'hasItemNumber', 'isEpic']
numeric_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='median'))
])
# mapped to column names from dataframe
text_features = ['text']
text_transformer = Pipeline(steps=[
('vect', CountVectorizer())
])
preprocessor = ColumnTransformer(
transformers=[('num', numeric_transformer, numeric_features),('text', text_transformer, text_features)]
)
clf = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', MultinomialNB())
])
x_train, x_test, y_train, y_test = train_test_split(features, labels, test_size=0.33)
clf.fit(x_train,y_train)