私は文書を分類するためにtflearnとtensorflowを使用しています。しかし、私は文書と訓練時間のサイズに問題に直面しています、私の最大の文書の長さは〜98000単語であり、建物のためにこれを使用するとネットワークは非常に時間がかかるでしょう。私は、データの次元を減らすためのさまざまな方法や、モデルを訓練するのに十分速い技術を探していました。私はdoc2vecとword2vecを見て、それぞれのモデルを作りましたが、tflearnでそれらを使う方法はわかりません。また、doc2vecとword2vecモデルを作成し、モデルの語彙に存在するすべての単語の特徴ベクトルを平均化して特徴ベクトルを得ることで文書を分類しています。この最終的な特徴ベクトルをDNNに使用することはできますか?または誰かが私が使用できる他の提案をしていますか?文書分類のためのtflearnディープラーニングの使い方
1
A
答えて
3
TensorFlowを使用してDocument Classificationモデルを簡単に構築し、TF.Learnライブラリに統合することができます。
様々な文書分類モデルの例は、examplesフォルダにでもあります任意の長さのドキュメントのhttps://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/learn#text-classification
最速のモデルは、単語モデルのバッグになります - 言葉の一つその平均値の埋め込み。これは、どのような文書分類問題に対しても推奨されるベースラインです。次に、RNNやCNNなど、より複雑なモデルを試すことができます。 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/learn/text_classification.py
あなたは簡単にtf.contrib.layers.fully_connected
を追加することによって、より完全に接続された層(例えばDNN部分)を拡張することができます - それを実行する方法の詳細については
def bag_of_words_model(features, target):
"""A bag-of-words model. Note it disregards the word order in the text."""
target = tf.one_hot(target, 15, 1, 0)
features = tf.contrib.layers.bow_encoder(
features, vocab_size=n_words, embed_dim=EMBEDDING_SIZE)
logits = tf.contrib.layers.fully_connected(features, 15, activation_fn=None)
loss = tf.losses.softmax_cross_entropy(target, logits)
train_op = tf.contrib.layers.optimize_loss(
loss,
tf.contrib.framework.get_global_step(),
optimizer='Adam',
learning_rate=0.01)
return ({
'class': tf.argmax(logits, 1),
'prob': tf.nn.softmax(logits)
}, loss, train_op)
、ここを参照してください:ここで
は、そのためのコード例ですlogits
の前に計算されます。
訓練済みのチェックポイントからword2vecなどの埋め込みをtf.contrib.framework.init_from_checkpoint
(see documentation)を使用して初期化することもできます。
関連する問題
- 1. 文書分類のためのIDF(逆文書頻度)の計算
- 2. 分類のためのPython文字列
- 3. 分類のためのパーセプトロンの使用
- 4. ibm watson文書分類
- 5. 分類のためのテキストデータの扱い
- 6. 遺伝的アルゴリズムを用いた文書の分類、
- 7. ディープラーニングを使用したオブジェクト検出のためのデータ増強
- 8. シーケンスのバイナリ分類のためのRNN
- 9. 文章分類(分類)
- 10. 分類のための不均衡データ
- 11. マルチクラス分類のためのsklearn.metrics.roc_curve
- 12. マルチラベル分類のためのXgブースト?
- 13. 画像分類のためのMapreduce
- 14. R:テキスト分類のためのスペクトルクラスタリング
- 15. 新しい文書を分類する - ランダムフォレスト、単語の束
- 16. cross_val_predictの後に新しい文書を分類する
- 17. tflearn(lstm -Tensorflow)を使用したIMDBデータのセンチメント分析
- 18. 分類のためのLSTMニューラルネットワークの構成方法
- 19. 物を分類するためのデザインパターン
- 20. 値を分類するためのアルゴリズム
- 21. 商業利用のための無料のトピック分類(分類システム)
- 22. R:randomForestで分類するためのbigmemoryライブラリの使用
- 23. Rで分類するためのrandomforest()の使用?
- 24. wekaで分類するためのテキストの表現方法は?
- 25. 文書管理アプリケーションで文書の重複や類似した文書のチェック
- 26. 文書用のナイーブなベイズ分類器の長さ正規化
- 27. nltkを使ってテキスト文書を分類する
- 28. マルチクラス分類のためのgbmメソッドを使用したキャレットの使用
- 29. JavaCVの文字分類
- 30. Gerrit - コードレビュー分類のための新しいドロップダウンリストボックスの紹介
返信いただきありがとうございます。私は深い学習とtflearnに新しいです。私はこの例[リンク] https://github.com/tflearn/tflearn/blob/master/examples/nlp/bidirectional_lstm.pyを使っていて、ネットワークの第1層を変更したいと思っていました。深いネットワーク分類子を使用して、どのように達成するための任意の提案? Max_document_lengthが主な問題であり、何らかの次元削減が必要な場合は他に何もありません –
モデルの最初のレイヤーは埋め込みです。 'tflearn'はTensorFlow自身のライブラリとは異なりますが、この場合も同じことが適用されます - DNNに変更するには、' fully_connected'レイヤーを追加するだけです。 – ilblackdragon
私は、ソフトマックスと分類について早くそれを理解しました。私が知りたいのは、埋め込みレイヤーに渡す前に、doc2vecやword2vecなどのフィーチャの数を減らす方法があるかどうかです。 –