0
テキストを分類するために、私はSVMを使いたいと思います。私はPythonのscikitライブラリを使用していますSVMを使用した分類
私はラベルの1つに、テストデータを分類したい(健康/アダルト) トレーニング&テストデータはテキストファイルです。 私はtxtファイルにテキストを保存していましたが、utf-8
でコード化しています。そのため、スニペットでそれらをデコードしています。 がここにこれは私がエラーで検索すると、私は
File "/Users/guru/python_projects/implement_LDA/lda/apply.py", line 107, in <module>
clf.fit(X_train, y)
File "/Users/guru/python_projects/implement_LDA/lda/lib/python2.7/site-packages/sklearn/svm/base.py", line 150, in fit
X = check_array(X, accept_sparse='csr', dtype=np.float64, order='C')
File "/Users/guru/python_projects/implement_LDA/lda/lib/python2.7/site-packages/sklearn/utils/validation.py", line 373, in check_array
array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: setting an array element with a sequence.
を取得しています誤りである私の未遂コード
String = String.decode('utf-8')
String2 = String2.decode('utf-8')
bigram_vectorizer = CountVectorizer(ngram_range=(1, 2),
token_pattern=r'\b\w+\b', min_df=1)
X_2 = bigram_vectorizer.fit_transform(String2).toarray()
X_1 = bigram_vectorizer.fit_transform(String).toarray()
X_train = np.array([X_1,X_2])
print type(X_train)
y = np.array([1, 2])
clf = SVC()
clf.fit(X_train, y)
#prepare test data
print(clf.predict(X))
だ、私はいくつかの結果が見つかりましたが、彼らにも助けにはなりませんでした。私はSVMモデルを適用する際にここで論理的に間違っていると思う。誰かが私にこれに関するヒントを与えることができますか?
さて、どうもありがとうございましたが、私は2つの疑問を持っ 私はこのclf.predictのように(()clf.predictに)あなたのコードの最後の行で唯一の1つのテスト文字列を渡すと(bigram_vectorizer.transform(コーパス)))私は[1,1,1 .... 1,1,1]として出力を得ています。なぜですか? – Guru
これは、ベクタライザがシーケンスを受け入れるためであり、その文字列もシーケンスです。 '... transform(np.array([コーパス]))' – frist
大丈夫私の悪い大変ありがとう:) – Guru