我正在使用SKLearn的HashingVectorizer
模块,由于标题中的错误消息,因此出现了问题。
我的问题与this one非常相似,但是那里列出的答案都不适用于我的情况。我的数据集没有任何空值,我正在指定所有关键字参数。
这是我的代码:
from sklearn.feature_extraction.text import HashingVectorizer
from sklearn.linear_model import SGDClassifier
vect = HashingVectorizer(decode_error='ignore', n_features=2**21,
preprocessor=stemming_tokenizer)
clf = SGDClassifier(loss='log', random_state=1, max_iter=1)
doc_stream = stream_docs(path='movie_data.csv')
我的问题是preprocessor
参数。当我删除它就可以了。但是出于实际原因,我无法真正将其删除,也不确定为什么要这样做。
stemming_tokenizer
的代码是这样的:
def stemming_tokenizer(phrase):
return [stemmer.stem(word) for word in phrase.split()]
在此确切上下文中不使用时,包括在TfidfVectorizer
的相同参数中使用时,它都可以工作。