GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

brightmart

text_classification – あらゆる種類のテキスト分類モデルなど、深い学習

投稿日:

あらゆる種類のテキスト分類モデルなど、深い学習

テキストの分類

このリポジトリの目的は、深い学習を伴うNLPのテキスト分類方法を探索することです。

UPDATE:今モデルを試してみたい場合は、 ‘a02_TextCNN’フォルダに移動し、 ‘python -u p7_TextCNN_train.py’を実行し、サンプルデータを使用してモデルを訓練し、ロスとF1スコアを定期的に印刷します。

それはテキスト分類のためのすべての種類のベースラインモデルを持っています。

マルチラベルが文章や文書と関連するマルチラベル分類もサポートしています。

これらのモデルの多くは単純ですが、タスクのトップレベルには達しません。しかし、これらのモデルの一部は非常に古典的なものなので、ベースラインモデルとして役立つかもしれません。

各モデルはモデルクラスの下でテスト関数を持っています。 最初にパフォーマンスのおもちゃの仕事にそれを実行することができます。 モデルはデータセットから独立しています。

深い学習を伴う大規模なマルチラベルテキスト分類の正式な報告をここで確認してください

ここでのサーバーモードは、質問応答のモデル化(コンテキストの有無にかかわらず)やシーケンスの生成にも使用できます。

私たちは2つのseq2seqモデル(注意してseq2seq、変圧器の注意があなたが必要とするすべてです)をテキスト分類を行うために探索します。 これらの2つのモデルは、シーケンス生成および他のタスクにも使用できます。 タスクがマルチラベルの分類である場合は、問題をシーケンス生成にキャストできます。

我々は2つのメモリネットワークを実装します。 1つはダイナミックメモリネットワークです。 以前は、質問応答、感情分析、およびシーケンス生成タスクの芸術の状態に達しました。 これは、サーバーのさまざまなタスクを実行し、高いパフォーマンスを達成するために1つのモデルと呼ばれています。 それは4つのモジュールを持っています。 キーコンポーネントはエピソードメモリモジュールです。 それはゲートメカニズムを使用してパフォーマンスに注意を払い、gated-gruを使用してエピソードメモリを更新し、隠れた状態更新のための別のgru(垂直方向)を持ちます。 推移推論を行う能力を持っています。

私たちが実装した第2のメモリネットワークは、再現エンティティネットワークです:世界の状態を追跡します。 それはメモリとしてのキーと値のペアのブロックを持っていて、新しい状態を実現する並列に実行されます。 コンテキスト(または履歴)を使用して質問応答をモデル化するために使用できます。 たとえば、モデルにいくつかのセンテンス(文脈として)を読ませ、質問を(クエリとして)尋ね、次にモデルに回答を予測するように依頼することができます。 あなたが質問と同じ物語をフィードするなら、それは分類タスクを行うことができます。

word2vecにいくつかのサンプルデータと単語の埋め込みが必要な場合は、 問題3などの閉じた問題で見つけることができます。

フォルダ “データ”でサンプルデータを見つけることもできます。 それは2つのファイルを含んでいます: ‘sample_single_label.txt’、1つのラベルの50kデータを含みます。 ‘sample_multiple_label.txt’は、複数のラベルを持つ20kデータを含んでいます。 の入力とラベルは ” ラベル “で区切られています。

テキスト分類やタスクのデータセットに関する詳細を知りたい場合は、これらのモデルを使用することができます。選択肢の1つはhttps://biendata.com/competition/zhihu/です

モデル:

  1. 高速テキスト

  2. TextCNN

  3. TextRNN

  4. RCNN

  5. 階層的注意ネットワーク

  6. 注意を払うseq2seq

  7. トランスフォーマー(「必要なものはすべて出席する」)

  8. ダイナミックメモリネットワーク

  9. EntityNetwork:世界の状態を追跡する

  10. アンサンブルモデル

  11. ブースティング:

    単一のモデルについては、同一のモデルを一緒に積み重ねる。 各層はモデルである。 結果は一緒に追加されたログに基づいています。 レイヤー間の唯一の接続はラベルの重みです。 各ラベルのフロントレイヤの予測エラーレートは、次のレイヤの重みとなります。 エラー率の高いラベルは大きな重みを持ちます。 後のレイヤーは誤予測されたラベルにもっと注意を払い、以前のレイヤーの以前の間違いを修正しようとします。 その結果、我々は非常に強力なモデルを得るでしょう。 a00_boosting / boosting.pyを確認してください

その他のモデル:

  1. BiLstmTextRelation;

  2. twoCNNTextRelation;

  3. BiLstmTextRelationTwoRNN

パフォーマンス

(マルチラベルラベル予測タスク、予測トップ5、300万トレーニングデータ、フルスコア:0.5)

モデル 高速テキスト TextCNN TextRNN RCNN HierAtteNet Seq2seqAttn EntityNet ダイナミックメモリ トランス
スコア 0.362 0.405 0.358 0.395 0.398 0.322 0.400 0.392 0.322
トレーニング 10m 2時間 10h 2時間 2時間 3時間 3時間 5時間 7時間

TextCNN、EntityNet、DynamicMemoryのアンサンブル:0.411

Ensemble EntityNet、DynamicMemory:0.403


通知:

m 待つ。 h立っている。

HierAtteNetは、階層型注意HierAtteNet意味します。

Seq2seqAttnはSeq2seqを意味する。

DynamicMemoryDynamicMemory意味します。

Transformerは「注意はあなたが必要とするすべてです」というモデルを表しています。

用途:

  1. モデルはxxx_model.py
  2. python xxx_train.pyを実行してモデルをトレーニングする
  3. 推論(テスト)を行うためにpython xxx_predict.pyを実行します。

各モデルには、モデルクラスの下にテストメソッドがあります。 最初にテストメソッドを実行して、モデルが正常に機能するかどうかを確認できます。


環境:

python 2.7+テンソル1.1

(テンソルフロー1.2,1.3,1.4も動作します;ほとんどのモデルは他のテンソルフローバージョンでもうまく動作するはずです。特定のバージョンへの結合はほとんどないので、python 3.5を使用すると、print / tryキャッチ関数)

TextCNNモデルは既にPython 3.6にトランスフーミングされています


通知:

いくつかのutil関数はdata_util.pyにあります。 典型的な入力は: “x1 x2 x3 x4 x5 ラベル 323434″ここで ‘x1、x2’は単語、 ‘323434’はラベルです。 それは、単語に埋め込まれた単語が単語2vecまたはfastTextに事前に設定されている、事前に習得された単語の埋め込みを読み込んでモデルに割り当てる機能を持っています。

モデルの詳細:

1.fastText:

効率的なテキスト分類のためのトリックバッグのインプリメント

文中に各単語を埋め込んだ後、この単語表現を平均してテキスト表現にし、これを線形分類器に供給する。softmax関数を使用して、定義済みのクラスに対する確率分布を計算する。 クロスエントロピーを用いて損失を計算する。 語表現の袋は語順を考慮しない。 語順を考慮するために、n-gram特徴を用いて、局所語順に関するいくつかの部分的な情報を取り込む。 クラスの数が多い場合、線形分類器の計算は計算コストがかかる。 それは訓練プロセスをスピードアップするために階層的ソフトマックスを使用します。

  1. バイグラムおよび/またはトリグラムを使用する
  2. softmax計算を高速化するためにNCE損失を使用します(階層softmaxをオリジナル紙として使用しない)

結果:パフォーマンスは紙と同じくらい速く、速度も非常に速い。

チェック:p5_fastTextB_model.py

2.TextCNN:

センテンス分類のため畳み込みニューラルネットワークの実装

構造:埋め込み—> conv —>最大プール—>完全接続層——–> softmax

チェック:p7_TextCNN_model.py

TextCNNで非常に良い結果を得るには、文章分類のための畳み込みニューラルネットワークの感度解析(および実践者のガイド)もお読みください。パフォーマンスに影響を与える可能性のあることについての洞察が得られます。 特定のタスクに応じていくつかの設定を変更する必要があります。

畳み込みニューラルネットワークは、コンピュータビジョンの問題を解決するための主要な構築ボックスです。 ここでは、CNLをNLP、特にテキスト分類にどのように使用できるかを示します。 文章の長さは1つずつ異なります。 そこで、パッドを使って固定長nを求めます。 文中の各トークンについて、ワード埋め込みを使用して固定次元ベクトルdを得る。 だから私たちの入力は2次元行列です:(n、d)。 これはCNNの画像と似ています。

まず、入力に対して畳み込み演算を行います。 それは、フィルタと入力の一部との間の要素的な乗算である。 k個のフィルタを使用し、各フィルタサイズは2次元行列(f、d)です。 これで、出力はk個のリストになります。 各リストの長さは、n-f + 1です。 各要素はスカラーです。 2番目の次元は常に単語の埋め込みの次元になります。 さまざまなサイズのフィルタを使用して、豊富な機能をテキスト入力から取得しています。 そして、これはn-gramの機能と同様のものです。

次に、畳み込み演算の出力に対して最大プールを行います。 k個のリストについて、k個のスカラーを得る。

第3に、スカラを連結して最終的なフィーチャを作成します。 これは固定サイズのベクトルです。 また、使用するフィルタのサイズにも依存しません。

最後に、線形レイヤーを使用して、これらの機能を定義済みのラベルに投影します。


3.TextRNN

構造v1:埋め込み—>双方向lstm —>連結出力—>平均—–>ソフトマックス層

チェック:p8_TextRNN_model.py

構造v2:埋め込み – >双方向lstm —->ドロップアウト – >連結出力—> lstm —>ドロップアウト – > FC層 – >ソフトマックス層

チェック:p8_TextRNN_model_multilayer.py


4.BiLstmTextRelation

TextRNNと同じ構造。 入力は特別に設計されています。 eginput: “コンピュータはどれくらいですか?ラップトップのEOS価格”。 ここで ‘EOS’は特別なトークンspilted question1とquestion2です。

チェック:p9_BiLstmTextRelation_model.py


5.twoCNNテキストリレーション

構造:最初に2つの異なる畳み込みを使用して、2つのセンテンスの特徴を抽出する。 2つの機能を連結します。 線形変換レイヤを使用してターゲットラベルに投影し、次にsoftmaxを出力します。

チェック:p9_twoCNNTextRelation_model.py


6.BiLstmTextRelationTwoRNN

構造:1つの文に対して1つの双方向のlstm(出力1を得る)、別の文に対してもう1つの双方向lstm(出力2を得る)。 次に:softmax(output1 M output2)

チェック:p9_BiLstmTextRelationTwoRNN_model.py

詳細は、チャットボットのためのディープラーニング、第2部 – Tensorflowでの検索ベースモデルの実装


7.RCNN:

テキスト分類のための反復畳み込みニューラルネットワーク

テキスト分類のため反復畳み込みニューラルネットワークの実装

構造:1)反復構造(畳み込み層)2)最大プール3)完全連結層+ソフトマックス

左側の文脈と右側の文脈を持つ文または文書の各単語の表現を学ぶ:

現在の単語の表現= [left_side_context_vector、current_word_embedding、right_side_context_vecotor]。

左側の文脈では、それは反復構造、前の単語と左の前の文脈の非線形性transfromを使用する。 右側の文脈と同様に。

チェック:p71_TextRCNN_model.py


8.階層的注意ネットワーク:

文書分類のため階層的注意ネットワークの実装

構造:

  1. 埋め込み

  2. ワードエンコーダー:単語の豊かな表現を得るための単語レベル双方向GRU

  3. 単語の注意:単語レベルで注意を払い、重要な情報を得る

  4. センテンスエンコーダ:文章の豊かな表現を得るための文レベルの双方向GRU

  5. 文意:文章の中で重要な文を得るための文章レベルの注意

  6. FC +ソフトマックス

NLPでは、1つの文に対してテキスト分類を行うことができますが、複数の文に使用することもできます。 私たちはそれをドキュメント分類と呼ぶかもしれません。 言葉は文章の形です。 そして、文章は書類になります。 この状況では、内因性構造が存在し得る。 では、この種のタスクをどのようにモデル化できますか? ドキュメントのすべての部分が同じように関連していますか? そしてどの部分が他の部分よりも重要な部分を決定するのか?

それは2つのユニークな特徴があります:

1)文書の階層構造を反映する階層構造を持つ。

2)それは単語と文章レベルで使用される2つのレベルの注意メカニズムを有する。 それはモデルが異なるレベルで重要な情報を捕捉することを可能にする。

単語エンコーダ:文中の各単語に対して、分布ベクトル空間の単語ベクトルに埋め込まれます。 それは双方向GRUを使用して文章をエンコードします。 2つの方向からのベクトルを連結することによって、文の表現を形成することができ、文脈情報も取り込むことができます。

単語注意:同じ単語は、文のために別のものよりも重要です。 そのため、注意メカニズムが使用されます。 最初に1層MLPを使用して文の隠れた表現を取得し、単語レベルのコンテキストベクトルuwとの類似性として単語の重要度を測定し、softmax関数を介して正規化された重要度を得る。

文章エンコーダー:文章ベクトルの場合、それをエンコードするために双方向GRUが使用されます。 ワードエンコーダと同様です。

文章注意:文章レベルベクトルは、文章間の重要度を測定するために使用されます。 単語の注意と同様です。

データの入力:

一般的に言えば、このモデルの入力には、sin文の代わりにサーバ文が必要です。 形は:[None、sentence_lenght]です。 ここでNoneはbatch_sizeを意味します。

私のトレーニングデータでは、それぞれの例について、私は4つの部分を持っています。 各部の長さは同じです。 私は1つの単一の文を形成するために4つの部分を連結する。 モデルは、[None、num_sentence、sentence_length]という形のテンソルを形成するために、文を4つの部分に分割する。 num_sentenceは文の数です(私の設定では4に等しい)。

チェック:p1_HierarchicalAttention_model.py


9.Seq2seq注意

共同体機械翻訳から得られた注意を伴うseq2seqの実装は、共同体の調整と翻訳を習得することによって行われます。

I.構造:

1)埋め込み2)BI-GRUもソース文からの豊かな表現を得る(前後に)。 3)デコーダが注目されている。

II.データの入力:

3種類の入力の2種類があります:1)文であるエンコーダ入力、 2)デコーダ入力、固定長のラベルリスト、3)ターゲットラベル、それはラベルのリストでもあります。

例えば、ラベルは: “L1 L2 L3 L4″であり、デコーダ入力は、[_GO、L1、L2、L2、L3、_PAD]となる。 ターゲットラベルは[L1、L2、L3、L3、_END、_PAD]になります。 長さが6に固定されている場合、超過しているラベルはいずれも転位され、ラベルが充分に充填されていない場合にはパッドされます。

III.注意メカニズム:

  1. 転送エンコーダ入力リストとデコーダの隠れ状態

  2. 各エンコーダ入力に対する隠れ状態の類似性を計算し、各エンコーダ入力に対する可能性分布を得る。

  3. 可能性分布に基づくエンコーダ入力の加重和。

    この重み合計を使用してRNN Cellに行くと、デコーダの入力と一緒に新しい隠れた状態を取得する

IV.How Vanilla Encoder Decoderのしくみ:

原文は、固定サイズベクトル(「思考ベクトル」)としてRNNを用いて符号化される。 デコーダの間:

  1. トレーニング中は、別のRNNを使用して、この「思考ベクトル」を初期状態として使用して単語を取得し、各タイムスタンプでデコーダの入力から入力を取得します。 デコーダは特殊トークン「_GO」から開始します。 1つのステップが実行された後、新しい隠れた状態が取得され、新しい入力とともに、特別なトークン「_END」に達するまでこのプロセスを続けることができます。 ロジットとターゲットラベルのクロスエントロピー損失を計算することで損失を計算することができます。 ロジットは、隠れた状態のための投影層を通る(デコーダステップの出力のために(GRUでは、出力としてデコーダからの隠れた状態を使用することができる)。

  2. テスト中はラベルがありません。 以前のタイムスタンプから得られた出力をフィードし、 “_END” TOKENに到達したプロセスutilを続行する必要があります。

V.注意事項:

  1. ここでは2種類のボキャブラリを使います。 1つはエンコーダーによって使用される単語からのものです。 別のものは、デコーダ用に使用されるラベル用です

  2. 私は3つの特別なトークン「_ GO」、「_ END」、「_ PAD」を挿入します。 すべてのラベルはあらかじめ定義されているため、 “_UNK”は使用されません。


10.トランスフォーマー(「あなたが必要とするすべての注意」)

ステータス:タスク分類を行うことができました。 玩具作業においてその配列の逆順を生成することができる。 モデルでテスト機能を実行して確認することができます。 チェック:a2_train_classification.py(列車)またはa2_transformer_classification.py(モデル)

モデルには、層正規化、残差接続、マスクも使用されています。

ビルディングブロックごとに、以下の各ファイルにテスト関数を組み込み、各小片をうまくテストしました。

注意を伴うシーケンスへのシーケンスは、翻訳、対話システムなどのシーケンス生成問題を解決するための典型的なモデルです。 ほとんどの場合、これらのタスクを実行するためにRNNを買物ブロックとして使用します。 近年では、シーケンス問題に対する畳み込みニューラルネットワークも適用されている。 しかし、トランスフォーマーは注意力だけでこれらの作業を行います。 それは迅速かつ徹底的な新しい最先端の結果です。

エンコーダーとデコーダーの2つの主要部分もあります。 以下は論文からの抜粋です:

エンコーダ:

6層。各層は2つの副層を有する。 第1はマルチヘッド自己アタッチメント機構である。 第2は、位置ごとに完全に接続されたフィードフォワードネットワークである。 各サブレイヤごとに。 LayerNorm(x + Sublayer(x))を使用します。 すべての次元= 512。

デコーダ:

  1. デコーダは、N = 6の同一層のスタックから構成される。
  2. 各エンコーダ層の2つのサブレイヤに加えて、デコーダは第3のサブレイヤを挿入し、第3のサブレイヤはエンコーダスタックの出力にマルチヘッドの注意を払う。
  3. エンコーダと同様に、各サブレイヤの周りに残留接続を使用し、続いてレイヤ正規化を行います。 また、デコーダスタック内のセルフアテンションサブレイヤを変更して、位置が後続位置に向かないようにします。 このマスキングは、出力埋め込みが1つの位置だけオフセットされていることと相まって、位置iの予測は、iより小さい位置の既知の出力にのみ依存することができます。

メインこのモデルから離れる:

  1. マルチヘッド自己の注意:自己の注意を使用して、キー値の投影を取得するために複数回線形変換、その後、通常の注意を払う; 2)性能を向上させるためのいくつかのトリック(残っている接続、位置エンコード、ポストフィードフィードフォワード、スムースラベル、無視したいものを無視するマスク)。

タスク分類を行うには、このモデルを使用します。

ここでは、タスクの分類にエンコード部分を使用し、冗長な接続を削除し、マスクを使用する必要はありません。 入力文の特徴を抽出するためにマルチヘッドアテンションとポジション方向フィードフォワードを使用し、その後線状層を使用してロジットを投影します。

モデルの詳細については、次を確認してください:a2_transformer_classification.py


11.現在のエンティティネットワーク

入力:1。 物語:それは文脈として、複数の文章です。 2.query:質問である文、3. ansewr:単一のラベル。

モデル構造:

  1. 入力エンコーディング:単語の袋を使用してストーリー(コンテキスト)とクエリ(質問)をエンコードします。 位置マスクを使用して位置を考慮する

    ストーリーとクエリをエンコードするために双方向のrnnを使用することで、0.392から0.398のパフォーマンスが1.5%向上します。

  2. ダイナミックメモリ:

a。 ストーリーの入力を伴うキー、値の「類似性」を使用してゲートを計算します。

b。 各キー、値、および入力を変換することによって隠れた状態を得る。

c。 現在の隠れ状態を更新するために、ゲートと候補の隠れ状態を結合する。

  1. 出力moudle(注意メカニズムを使用してください):a。 クエリと隠れた状態の「類似性」を計算することで可能性の分布を得る

b。 可能性分布を用いて隠れ状態の加重和を得る。

c。 クエリの非線形変換と予測ラベルを得るための隠れ状態。

メインはこのモデルから離れる:

  1. お互いに独立したキーと値のブロックを使用します。 したがって、それは並行して実行することができます。

  2. コンテキストと質問を一緒にモデリングする。 メモリを使用して世界の状態を追跡する。 隠れ状態と質問(クエリ)の非線形変換を使用して予測を行います。

  3. シンプルなモデルも非常に良い性能を達成することができます。 言葉の使用袋として単純なエンコード。

モデルの詳細については、次を確認してください:a3_entity_network.py

このモデルでは、このモデルにストーリー(コンテキスト)とクエリ(質問)の両方の数を数えるテスト関数があります。 ストーリーの重みはクエリよりも小さくなります。


12.ダイナミックメモリネットワーク

モデルの展望:

1.入力モジュール:生のテキストをベクトル表現にエンコードする

2.Questionモジュール:質問をベクトル表現にエンコードする

3.Episodicメモリモジュール:入力と、それは入力のどの部分が注意のメカニズムを介して、質問と以前のメモリ====>それはメモリのvecotrをpoduceを考慮に入れて、焦点を当てることを選択します。

4.Answerモジュール:最終的なメモリベクトルから回答を生成する。

詳細:

1.入力モジュール:

a.ingle sentence:gruを使用して隠れた状態を取得します。b.list of sentences:gruを使用して各文の隠れた状態を取得します。 例えば、[隠れ状態1、隠れ状態2、隠れ状態…、隠れ状態n]

2.Questionモジュール:gruを使用して隠れ状態を取得する

3.エジソンメモリモジュール:

アテンションメカニズムとリカレントネットワークを使用してメモリを更新します。

a。 注目メカニズムとしてのゲート:

 two-layer feed forward nueral network.input is candidate fact c,previous memory m and question q. features get by take: element-wise,matmul and absolute distance of q with c, and q with m.

b。メモリ更新メカニズム:候補文を取って、ゲートとそれ以前の隠れた状態、隠し状態を更新するためにgated-gruを使用します。 次のようになります。h = f(c、h_previous、g) 最後の隠れた状態は、応答モジュールの入力です。

c。複数エピソード===>推移推論の必要性。

例えばサッカーがどこにあるのか尋ねる? それは “ジョンが”サッカーを置く “の文に出席する)、次に2回目のパスで、それはジョンの場所に出席する必要があります。

4.Answerモジュール:最終的な腐食性記憶、質問を取る、それは答えモジュールの隠れた状態を更新する。


TODO

1.テキスト分類のための文字レベル畳み込みネットワーク

2.テキスト分類のための畳み込みニューラルネットワーク:浅い単語レベルと深い文字レベル

3.テキスト分類のための非常に深い畳み込みネットワーク

4.半教師付きテキスト分類のための敵対的訓練方法

5.モデルの組み立て

結論:

大規模なマルチラベル分類を行う過程で、サーバレッスンが学習され、以下のようなリストが作成されました。

  1. 高精度に到達するために最も重要なことは何ですか? それはあなたがやっている仕事に依存します。 ここで行った作業から、単語、タイトルと説明の文字を含む複数の機能から訓練されたモデルに基づくアンサンブルモデルは、非常に高いアキュラシーに達するのに役立つと信じています。 しかし、場合によっては、alphaGo Zeroが示すように、アルゴリズムはデータまたは計算能力よりも重要です。実際、alphaGo Zeroはヒューマンデータを使用していませんでした。

  2. 特定のモデルやアルゴリズムの上限はありますか? 答えは「はい」です。 ここではさまざまなモデルが使用されていますが、構造がかなり異なるにもかかわらず、多くのモデルが類似のパフォーマンスを持つことがわかりました。 ある程度、パフォーマンスの差はあまり大きくありません。

  3. エラーのケーススタディは役に立ちますか? 私は特にあなたがいろいろなことをやったが非常に便利だと思うが、限界に達した。 たとえば、ケーススタディを行うことで、モデルが正しい予測をするラベルや、間違いを起こすラベルを見つけることができます。 また、間違った予測ラベルの重みを増やしたり、データから潜在的なエラーを見つけたりすることで、パフォーマンスを向上させることができます。

  4. どのように私たちは機械学習の特定の専門家になることができますか? 私の意見では、競技を学ぶマシンに参加したり、たくさんのデータでタスクを開始したり、論文を読んだり、いくつかを実装したりするのは良い出発点です。 だから私たちは実際に特定のタスクを処理する経験とアイデアを持ち、その課題を知ります。 しかし、もっと重要なのは、論文のアイデアだけでなく、問題をぶつけるのに役立つと思われる新しいアイデアを探求すべきだということです。 たとえば、古典的なモデルの構造を変更したり、いくつかの新しい構造を発明したりすることによって、私たちはやっている仕事にもっと適したより良い方法で問題に取り組むことができます。

参照:

1.効率的なテキスト分類のための罠

センテンス分類のための畳み込みニューラルネットワーク

センテンス分類のための畳み込みニューラルネットワークの感度分析(およびプラクティショナーのガイド)

4.チャットボットの学習、第2回 – Tensorflowでの検索ベースモデルの実装、 www.wildml.com

5.テキスト分類のための現在の畳み込みニューラルネットワーク

6.文書分類のための階層的注意ネットワーク

7.共同で学習して整列して翻訳することによる固有の機械翻訳

8.Attentionはあなたが必要とするすべてです

9.Ask Me Anything:自然言語処理のためのダイナミックメモリネットワーク

10.再帰的エンティティネットワークによる世界の状態の追跡

11.モデルのライブラリからの選択の集合


つづく。 問題があれば、concat brightmart@hotmail.com







-brightmart
-, , , , , , , , , , , ,

執筆者: