我有一个DataFrame包含一列文本的熊猫,我想使用 scikit-learn对文本进行矢量化CountVectorizer。但是,文本包含缺失值,因此我想在矢量化之前估算一个常数值。
我最初的想法是创建一个PipelineofSimpleImputer和CountVectorizer:
import pandas as pd
import numpy as np
df = pd.DataFrame({'text':['abc def', 'abc ghi', np.nan]})
from sklearn.impute import SimpleImputer
imp = SimpleImputer(strategy='constant')
from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer()
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(imp, vect)
pipe.fit_transform(df[['text']]).toarray()
但是,fit_transform错误是因为SimpleImputeroutputs a 2D array and CountVectorizerrequires 1D input。这是错误消息:
AttributeError: 'numpy.ndarray' object has no attribute 'lower'
问题:我如何修改它Pipeline才能使其正常工作?
注意:我知道我可以估算熊猫中的缺失值。但是,我想在 scikit-learn 中完成所有预处理,以便可以使用Pipeline.
一只斗牛犬
慕尼黑的夜晚无繁华
手掌心
相关分类