2016-03-25 4 views
0

いくつかのstackoverflow質問を読んで、私が探していたものを見つけることができませんでした。少なくとも、私は様々な投稿を読むとは思わなかった。Scikit Learn - データセットを使って作業する

トレーニングデータはhere のように設定されていますので、sklearn.datasets.load_filesを使用して、セットアップ時に完璧に一致しているため、これらのデータを読み取ります。

しかし、私のファイルはすでに単語の袋として(それぞれの行は単語であり、頻度カウントはタブで区切られています)、tsvです。

正直言って、私はどのように進むべきかわかりません。 load_filesによって取り込まれたデータは、各要素が新しい行の文字を含む各ファイルの内容であるリストとして設定されます。私はBunchデータ型がどのファイルがどの分類子フォルダに属しているかを100%確実に追跡しているわけでもありません。

以前はtsvsでscikit-learnを使っていましたが、すべてのデータを持つ単一のtsvファイルだったので、パンダを使って読み込み、numpy.arrayを使って必要なものを取り出しました。私がやろうとしていることの一つですが、私は以前に勉強した単一のtsvファイルのように、分類子がフォルダ名である複数のファイルでそれを行う方法がわかりません、トレーニングデータの各行は個別に

分類器の学習に使用できる形式にデータを取得する際の助けになります。

+0

ためにここで多くを見つけることができますが、この部分を読んだ:「scikit学習分類またはクラスタリングアルゴリズムでテキストファイルを使用するには、使用する必要があります。あなたの問題に合った特徴抽出トランスを構築するsklearn.feature_extraction.textモジュール。 " –

+0

私は....ですが、それは生データに依存しています。私はかなり確信しています...私は持っていません。 – daredevil1234

+0

データセットからフィーチャーを抽出するカスタムフィーチャー抽出プログラムを作成することができます。あなたが時間をかけて文書を読むのであれば、実際には非常に簡単です。 'BaseEstimator'をサブクラス化して、必要な機能を抽出してください。 –

答えて

0

ファイルをループして読み取って辞書のリストを作成し、各辞書に各文書の機能と頻度を含めることができます。ファイル1.TXTを想定します

import codecs 
corpus = [] 
#make a loop over the files here and repeat the following 
f = codecs.open("1.txt", encoding='utf8').read().splitlines() 
corpus.append({line.split("\t")[0]:line.split("\t")[1] for line in f}) 
#exit the loop here 
from sklearn.feature_extraction import DictVectorizer 
vec=DictVectorizer() 
X=vec.fit_transform(measurements) 

あなたはDictVectorizer

関連する問題