2016-06-24 4 views
1

sklearnが受け入れる形式でデータを表示する際に問題が発生します 生データは数百の文字列です。これらは5つのクラスの1つに分類されます分類したい文字列とそれぞれのクラスの並行リストを表示します。私はGaussianNB()sklearnを使用してクラスを使用して文字列を分類する

例のデータを使用しています:

与えられた「機能」と

当然の分類を表し

For such a large, successful business, I really feel like they need to be 
either choosier in their employee selection or teach their employees to 
better serve their customers.|||Class:4 

、文字列自身が自分で使用する前にベクトルに変換する必要があり分類器が、私はそれTODOために、しかし、このタスク

dictionaryTraining = convertListToSentence(data) 
vec = DictVectorizer() 
print(dictionaryTraining) 
vec.fit_transform(dictionaryTraining) 

を実行するためにDictVectorを使用しようとしましたが、私はATTACに持っています辞書への時間データの実際の分類を、私はエラー'str' object has no attribute 'items'を得るそう、私は私の質問がある.fit_transformは、機能とインデックスが必要ですが、私は完全にindice

fit_transform(X[, y]) Learn a list of feature name -> indices mappings and transform X. 

の目的を理解していないので、これは理解してどのように文字列のリストとそれらの分類を表す数字のリストを取り、これをgaussianNB()クラシファイアに提供して、私は将来同様の文字列でそれを提示でき、文字列クラスを見積もることができますか?

+0

あなたが '' dictionaryTraining変数にデータのフォーマットを共有することはできますか? –

+0

フォーマットを文字列 - >分類に設定しない限り、フォーマットは機能しませんが、明らかにそれは分類子が必要としないものです – kxdan

答えて

1

あなたの入力データは生のテキストの形式であり、like {"word":number_of_occurrences、 "}のような辞書の形式ではないので、入力テキストを空白に分割するCountVectorizer必要な入力ベクトルに変換します。

このような変換の簡単な例は次のようになります。

from sklearn.feature_extraction.text import CountVectorizer 
corpus = ['This is the first document.', 'This is the second second document.', 
      'And the third one.', 'Is this the first document?',] 
x = CountVectorizer().fit_transform(corpus) 
print x.todense() #x holds your features. Here I am only vizualizing it 
+0

文字列のリストとその並行リストをどのように取るかの例がありますか?文字列の分類は、これらをcountvectorisorに変えて、分類器に入力しますか? – kxdan

+0

私は答えを更新しました。 – geompalik

関連する問題