Keras〜テキストの分類〜ツイートイントロダクション前回までは、基本的な画像識別をやってきました。Classification)<まとめ>テストデータと学習用データを用意する学習用のモデルを構築するコンパイルしてモデルの訓練(トレーニング)を行う訓練の結果を見て精度が想定以上出るのを確認する分類したいデータを分類する今回はテキストの分類を行います。参考サイトはこちら映画のレビューを分類する今回はテストデータの映画のレビューを「ポジティブか?ネガティブか?」の判定を行います。参考サイトは以下のような項目に分かれていましたデータを調べる整数を単語に戻すデータを準備するモデルを構築する隠しユニット損失関数とオプティマイザ検証セットを作成するモデルを訓練するモデルを評価する経時的な精度と損失のグラフを作成するこのような項目になっていますが基本は、前回にやったのと同じです。14,...」それを文字列にしてみる処理が記載されていました。3.データを準備する「pad_sequences」関数を使用してデータの整理などを行い学習・評価する準備を行います。4.モデルを構築する4つの層(レイヤー)を重ねて分類機を作成します。ややこしくなってきたのでソースコードで整理します。0「dense」は前回の基本的な分類で使用しました。今回使用したレイヤーに関してはリンク先を参照します。Embeddingglobal_average_pooling1ddense現状の理解度では、上にあるようなレイヤーを組み合わせて「学習モデル」を作成している。モデルのコンパイルこのコンパイルもせって処理が含まれています。それは「最適化関数(オプティマイザ)」と「損失関数」を設定することです。metrics=['accuracy'])損失関数に設定しているのは「binary_crossentropy」です。train_labels[10000:]ここは特に注意する点はないと思います。verbose=1)fit()で学習処理を行います。test_labels)print(results)最後にグラフに表示します。fit()の返り値の「historyオブジェクト」が実行結果を保持しているようです。評価の結果をグラフに表示します。loss')plt.xlabel('Epochs')plt.ylabel('Loss')plt.legend()plt.show()<実行結果(出力内容)>この特定のケースでは、20回程度のエポックの後に単純にトレーニングを中止することで、過剰適合を防ぐことができます。作成したコードはGITからダウンロードできます。上の実行した結果は検証するモデルの評価を行うもので目的の「文章を分類する」と言うところとは全く関係のない話です。判定の結果をどのように出力するのか→予測の結果をどのように出力するのか?を調べると・・・ここのサイトを見て「迷宮入りしそうだな。」と思ったので課題として残すことにしました。していること予測の結果はpredict()で表示すると言うことです。これは予測結果としてNumPy配列を返却するので意味がわからない。使用している関数としては、以下のようなものがあることは調べがついています。現状の理解としてはTensorFlowでの学習処理は、以下の通りデータセットを用意するデータセット、テストデータでの学習モデルを作る(レイヤー作成)学習処理を行う(fit())評価を行うここまでできたら、あとは実戦に投入する→画像判定や、文章の判定を行うことができるようです。