2018/08/30「DELTA TOKYO #3 〜NeuralNetworkConsoleの面白い使い方を学ぼう〜」に参加させてもらいました。
発表に使ったスライドです
今回は、そこでお話した内容を補足します。
プレゼン用スライドはSlideShareで共有してます。
テーマを決めた理由
人間がかかわらないとできない業務の負荷を減らすため、アプリケーションの入力時に内容のチェックまで行えるかを試してみたいな
arakan-pgm-ai.hatenablog.comニュースコーパスの分類に独女通信ってのがある。
じゃあ、女性向きニュースとそれ以外の区別をつけるってのをやってみよう。
そういうことをするなら、雰囲気的に「女性向けニュースのAI編集長」だな・・・。
みたいな感じで決めました。
面白い方向性も感じるし
Neural Network Console/Neural Network Librariesの機能強化の方向性として、「ディープラーニングを学ぶ研究者だけでなく、もっと、実務で使う人に焦点をあてた検討もしてほしいな」と、ちょっと真面目に感じていて、あれこれ試している・・という側面もあります。
正直、うまくやれれば、ビジネスに小さなイノベーションを起こすくらいの可能性も感じてたり・・ホント、惜しいな・・と思ったりしてます。
ソースコードの場所
さて。
本題に戻します。
まず。
ソースコードとデータとEXCELファイルなど、一式こちらにあります。
NNabla_cli.exeを使う環境
実行には、Anaconda python とNeural Network Librariesのインストールが必要です。
今回のように外部プログラムから、NNabla_cli.exeを実行する場合は、Condaで仮想環境を作らずに、Neural Network Librariesをインストールする必要があります。
仮想環境を作らずに・・ってとこが・・超重要です。
仮想環境に切り替えるコマンド(activate)をバッチファイルに書いても、そこで処理が途切れてしまってうまくいきません。
あと、手抜きでパスをVBAのソースとかバッチファイルにダイレクトに書いてます。
自分が使ったパスは「C:\tmp2」です。
そこにファイルを全ておいてます。
もし、ソースを書き換えないのなら、そのフォルダを作って使ってください。
前処理のPythonプログラムの補足事項
テキストデータをNeural Network Consoleに変換するプログラムは2種類あります。
処理の本体は「make_nnc_data_from_text_for_vbademo.py」にあります。
基本的な方法論やソースはこちらで紹介しているものと同じです。
前処理でテキストをまとめて処理するだけなら、上記の記事のままで問題ないです。
今回追加した処理
今回は「EXCELで入力したテキストひとつだけを処理する機能」が必要になるので、その処理を追加しています。
違いは対象ファイルの受取り方です。
大量処理の場合は、テキストファイルの中の対象ファイルのパスを読み取って処理するので、引数が「複数の対象テキストファイルを羅列したCSVファイル」になります。
from make_nnc_data_from_text_for_vbademo import MakeNnc m = MakeNnc() m.make_data('for_convert_text_list.csv','for_demo')
ところが、EXCELに入力されたテキストは、その処理の内容を保存したテキストファイル(今回は vba.txt)を引数にとって処理する必要があります。
from make_nnc_data_from_text_for_vbademo import MakeNnc m = MakeNnc() m.make_data_single('vba.txt','vba.csv','9',0)
なので、それに対応する関数を追加したわけです。
#ファイルをひとつだけ処理する def make_data_single(self,textfile,sOutputFile,label,nOut): out_csv = open(sOutputFile,'w',newline='',encoding='utf8') out_csv_writer = csv.writer(out_csv) out_csv_writer.writerow(['x:image','y:label']) sPath = '.\\' + label + '\\' + str(nOut) + '.csv' out_csv_writer.writerow([sPath,0]) out_csv.close() l_text = self.__get_input_txt(textfile) self.__make_data_csv(l_text,label,nOut)
上記以外は、元記事を読んでソースを見てもらえば大体わかるかな・・と
前処理後のデータを学習するNeural Network Consoleのモデル他
今回のデモは、以下の記事でやったネットワークモデルをそのまま使いました。
特別なことは何もしていないので、上記記事をみてもらえばよいかな・・と。
EXCELからセルの内容を評価する部分
記事を入力する「メイン」シートのB8セルの内容をvba.txtに保存してBATファイルをキックしているだけです。
VBAのソースでシート名を固定で参照していますので、シート名を変更したりすると動きません。
基本的なやり方は以下の記事の通りにやってます。
この記事を見てもらうと、今回のデモのEXCELがこいつのボタンの名前とかを、ちょっと変えただけのものだとわかると思います。
違っているのは、パスとか呼び出しているファイルの名前とかくらいです。
なので、ここで追加の説明はしません。
NNabla_cli.exeの使い方などについて
ネットワークモデルや学習済パラメータを引き継ぐファイルや、それを使って評価を実行するNNabla_cli.exeの使い方などは、こちらの記事に書いてます。
最後に、自然言語処理の表についての補足
あと、スライドでテキストデータを数値データ化する方法の表をざくっと書いてます。
これについてのもう少し詳しい説明は以下の記事でやってます。
以上・・ですかね。
ではでは。