を作成する問題は、私は(サンプルhereに基づいて)次のコードを持っているが、それは動作していない:学ぶscikit:カスタマイズされたCountVectorizerとカイ二乗
[...]
def my_analyzer(s):
return s.split()
my_vectorizer = CountVectorizer(analyzer=my_analyzer)
X_train = my_vectorizer.fit_transform(traindata)
ch2 = SelectKBest(chi2,k=1)
X_train = ch2.fit_transform(X_train,Y_train)
[...]
fit_transform
を呼び出すときに次のエラーが与えられます。
AttributeError: 'function' object has no attribute 'analyze'
ドキュメントによると、CountVectorizerはvectorizer = CountVectorizer(tokenizer=my_tokenizer)
のように作成する必要があります。しかし、私がそれを行うと、私は次のエラーを受け取ります:"got an unexpected keyword argument 'tokenizer'"
。
私の実際のscikit-learnバージョンは0.10です。
ありがとうございます!ところで、私はまた、スパース行列を配列に変換する必要がありますか? 'ch2.fit_transform(X_train.toarray()、Y_train)'そうでなければ、サブスクリプトできないエラーが発生する –
@DT:これは、疎な行列を扱うように設計されています。あなたのパイプラインの次のステップは何ですか? –
うーん... Strange、chi squareは2つの配列(XとY)を必要とするので、疎な行列を配列に変換しなければならないと思っていました...私の完全なコード(そしてchisquareの新しい問題)は[ここ]ですhttp://stackoverflow.com/questions/10378601/scikit-learn-desired-amount-of-best-features-k-not-selected)、どうぞご覧ください。 –