現在、機械学習プロジェクトで作業中で、データセットを構築中です。データセットは、1文から約50文(句読点を含む)までの長さが異なる複数の異なるテキスト機能で構成されます。このデータをプリプロセスして保存し、Pythonを使用した機械学習に使用する最良の方法は何ですか?バイナリ分類のテキストデータセットを格納する
答えて
あなたは、類似の抽出のような、より複雑なタスクを実行するか、文章の間の比較をしたいされている場合、ほとんどのケースでは、あなたはいくつかのケースではしかし、Wordののバッグといわれる方法を用いることができ、あなたが使用する必要がありますWord2Vec
バッグオブワード
あなたは、あなたがエンコードする古典的なBag-Of-Word表現を使用できます各サンプルをすべてのサンプルからのすべての単語のカウントを示す長いベクトルに変換する。
"I like apple, and she likes apple and banana."
、
"I love dogs but Sara prefer cats."
:たとえば、次の2つのサンプルを持っている場合。
その後、すべての可能な単語が(順序はここでは関係ありません)です:あなたはsklearnを使用している場合
I she Sara like likes love prefer and but apple banana dogs cats , .
その後、2つのサンプルは
First: 1 1 0 1 1 0 0 2 0 2 1 0 0 1 1
Second: 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1
にエンコードされます、タスクが希望
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
corpus = [
'This is the first document.',
'This is the second second document.',
'And the third one.',
'Is this the first document?',
]
X = vectorizer.fit_transform(corpus)
# Now you can feed X into any other machine learning algorithms.
Word2Vec
Word2Vecは、ニューラルネットワークを埋め込むを訓練することによって単語間の関係を見つけるより複雑な方法です。埋め込みは、平易な英語で、を提供するすべてのサンプルのコンテキストで、単語の数学的表現、と考えることができます。コアの考え方は、の場合はという単語が似ているということです。
Word2Vecの結果は、すべてのサンプルに表示されているすべての単語のベクトル表現(埋め込み)です。驚くべきことは、ベクトルに対してアルゴリズム操作を実行できることです。クールな例は次のとおりです。Queen - Woman + Man = King
reference here
Word2Vecを使用するために、我々はここで基本的な設定で、gensimと呼ばれるパッケージを使用することができます。ここでは
model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
model.most_similar(positive=['woman', 'king'], negative=['man'])
>>> [('queen', 0.50882536), ...]
sentences
あなたのデータであり、size
は、埋め込みの大きさ、 size
が大きいほど、単語を表すスペースが多くなり、常にがオーバーフットしてと考える必要があります。 window
は、私たちが気にしている文脈のサイズです。それは、訓練の際に、文脈からターゲットを予測しているときに見ているターゲット単語の前の単語の数です。
一般的な方法の1つは、辞書(すべての可能性のある単語)を作成し、この辞書の関数ですべての例をエンコードすることです(たとえば、これは非常に小さく限られた辞書です)。辞書:hello、world、from、python。すべての単語が位置に関連付けられます。例のすべてで、存在する場合は0、存在する場合は1を持つベクトルを定義します。たとえば、「hello python」の例では、次のようにエンコードします。1,0,0,1
- 1. ケラス - バイナリ分類
- 2. バイナリ分類のTensorFlow
- 3. バイナリ分類とスパースバイナリマトリックス
- 4. ニューラルネットワークによるバイナリ分類?
- 5. CoreMLでのバイナリ分類モデルトレーニング
- 6. グループ内のバイナリ分類
- 7. TensorFlow:バイナリ分類の精度
- 8. ソフトマックスでのバイナリ分類
- 9. バイナリ分類にLSTMを使用する
- 10. バイナリ分類のためのマルチクラス分類器の訓練
- 11. weighted_cross_entropy_with_logitsのTensorFlowによるバイナリ分類
- 12. シーケンスのバイナリ分類のためのRNN
- 13. Tensorflowを使用したバイナリ分類
- 14. JavaのArrayListに2種類のオブジェクトを格納する
- 15. スプレッドシートの種類のデータをSQLデータベースに格納する
- 16. 値をバイナリ値に変換して配列に格納する
- 17. CMake:バイナリにビルド/システム情報を格納する
- 18. 長いバイナリ(生データ)文字列を格納する
- 19. J2ME - 配列や類似のintを格納する
- 20. 同じ種類のC++テンプレートオブジェクトを格納する
- 21. TensorFlow:バイナリ分類の文脈でF1_scoreを使用する
- 22. バイナリ線形分類コードをテストするためのサンプルデータ
- 23. ハッシュの格納に使用するデータ型の種類
- 24. テキストデータセットの最長行
- 25. ハッシュの値部分にラムダを格納
- 26. 異なる種類の変数を格納
- 27. CLOB列にバイナリ文字列を格納できますか?
- 28. Kerasバイナリ分類スカッシュをゼロ/ 1に出力する
- 29. バイナリ分類にOpenCV RTreesを使用するには?
- 30. Python - Tensorflow、バイナリ分類、常に0を予測する
最初にPubMedからデータのロードをダウンロードし、テキストの前処理を計画する必要があります。これをどのように先に保存できますか? – Toby
あなたがダウンロードしているデータが[this](https://www.ncbi.nlm.nih.gov/protein/BAC80069.1)のようなものであれば、あなたはそれらを任意のフォーマットのテキストファイルとしてダウンロードすることができます。あなたはそれを必要とします、あなたは 'fileを使って(ロードすることができます)(http://stackoverflow.com/questions/3925614/how-do-you-read-a-file-into-a-list-in-python)。 readline() 'を実行してテキストを行単位で読み込みます – Jason