いつまでもぐずぐずしてはいられない。
に取り組もう。(これまでの作業は、こちら)
Seq2Seqの学習に使用するデータは、3種類ある。
・ Decoderの入力値:BOS, 俳句 (EOSを含まない)
・ Decoderの目標値:俳句, EOS (BOSを含まない)
* BOS は beginning of sentence で文頭、EOS は end of sentence で文末の意味。
これらをすべて準備しなければいけない。
で、前回保存したcsvファイルを読み込み、
iloc コマンドで、
pandasのDataFrameをスライスして、
必要なデータの列だけ切り出す。
(とりあえず、Encoder用データを変数xに、Decoder用データを変数tに格納。)
こんなのExcelでやったら一発では?
と素人のわたしは思ってしまうが、
ここでは封印。
Python で完結させることを考える。
まずは、かんたんそうな
Decoderの入力値と目標値から。
段取りは、
② Decoderの入力値 : ’EOS’を削る
③ Decoderの目標値 : ’BOS’ を削る
となるはずだが、
とりあえず①だけやって、②、③は辞書作成後に行う。
とし、
でチェック。
で、問題は、
Encoderの入力値だ。
俳句から順に名詞だけ抜き出し、
それに’BOS’ (先頭)と’EOS’(末尾)をつけるだけじゃん、
と思われるかもしれないが、
ここでもまたfor文が出てくる。
しかも、ネスト(for文の中にfor文を入れ子に)する必要がある。
無理!
と思ったが、
テキストを何度も読み返し、
多分、こう?
と思ったものを、
キカガク長期コースの先生に送った。
コードをGoogle Colabに書き、
Slackで共有したので、
実際に通ったコードが送り返されてきた。
これはすごい!
送ってもらったコードを試してエラーが出れば、
また、やりとりしないといけない。
それをしないで済むからだ。
コードを見ると、
‘BOS’を俳句の最初につけるのに、
insert コマンドを使ったりと、
知らないテクもあり
pandas、大事! 勉強しよ。
と痛感した。
ここまでくるのにも時間がかかったが
あと2つ、
・zero パディング
をやらないといけない。
う〜む。
今日はここまでじゃ。
コメント
[…] さて、前回(こちら)のつづき、 Kerasで 辞書の作成と単語のID化を行う。 […]