概要
kerasでLSTMに挑戦しました。
こちらをお手本にしながら進めました。
老人と海
変身
ドグラ・マグラもやりたかったのですがよく分からないエラーが出てきたのでまたの機会としました。そしてできたものは、せっかくなのでウェブにて公開することにしました。
今後も追加していく、かつ進化していくかもしれません。
説明
簡単に言うと
[お, は, よ]から[う]を予測して「おはよう」
[や, き, め]から[し]を予測して「やきめし」
と、文章に仕立て上げていきます。
言葉あてのような感じがします。
今回のように少し試したぐらいでは、生成された文章におかしな箇所が目立ちます。
やってみた感想
LSTMによって文章を生成することはできましたが、その原理はさきほど説明した通り「この単語の並びが来たら、次はこの単語でしょ」というもの。
逆に、人が文章を書くときは表現したいイメージがあって、それに沿って単語を並べていくものです。
例えるなら、
人 ・・・ 目的地があってそこまでの道を決める。
LSTM ・・・ 道を進んでいくとどこかにたどり着いた。
LSTM(機械学習)による文章生成は単語同士の偶然の出会いの産物に思えました。
しかし、人が書いた文章にしても、書く時は違えど読む時は偶然の出会い。
結果からみると同じなのかもしれません。
参考
lstm_text_generation.py
kerasの公式サンプルです。
Keras LSTM の文章生成を単語単位でやってみる
今回のお手本にさせていただきました。
Keras LSTMでサクッと文章生成をしてみる
上記サイトの一文字ずつ生成していく版。
単語に分かち書きしない分、こちらの方が理解しやすいです。
LSTMでカフカの「変身」を元に文章生成してみたら、何者にもなれなかった話。
特に意味はないとのことですが、カフカの変身を使用して、生成されています。
ただし、アルファベットで学習してます。
青空文庫
こちらのデータを使わせていただきました。
コメント