我正在尝试使用Sklearn进行特征提取文本,但是出现错误
类型错误:fit_transform()缺少1个必需的位置参数:'raw_documents'
似乎我必须在缺少原始文档的情况下完成一些参数,但是我找不到导致错误的原因,这是我的代码:
features=TfidfVectorizer.fit_transform(data.status).toarray()
label=data.label
features.shape
在Jupyter笔记本电脑控制台中运行时,出现以下错误:
TypeError Traceback (most recent call last)\
<ipython-input-3-614f2fa78a04> in <module>()
----> 1 features=TfidfVectorizer.fit_transform(data.status).toarray()
2 label=data.label
3 features.shape
TypeError: fit_transform() missing 1 required positional argument: 'raw_documents'
在scikit-learn中,所有带有fit_transform
的东西都是某种类型的实例,这就是说,您需要首先初始化该实例,在此您要调用fit_transform
,就好像它是staticmethod
。
因此,可以通过让vectorizer = TfidfVectorizer()
创建实例并使用vectorizer.fit_transform(data.status)
,或者直接使用TfidfVectorizer().fit_transform(data.status)
。
您可以通过查看the docs来看到,注意到您似乎确实传递了唯一的必需参数,并回想起Python中的实例方法带有一个隐式参数,通常称为self
,因此您的代码中发生的情况是您将data.status
传递为self
,而raw_documents
未设置。