keras LSTMでテキスト生成してみた

概要

kerasでLSTMに挑戦しました。
こちらをお手本にしながら進めました。

老人と海
変身

ドグラ・マグラもやりたかったのですがよく分からないエラーが出てきたのでまたの機会としました。そしてできたものは、せっかくなのでウェブにて公開することにしました。

フミ子

今後も追加していく、かつ進化していくかもしれません。

説明

簡単に言うと
[お, は, よ]から[う]を予測して「おはよう」
[や, き, め]から[し]を予測して「やきめし」
と、文章に仕立て上げていきます。
言葉あてのような感じがします。

今回のように少し試したぐらいでは、生成された文章におかしな箇所が目立ちます。

やってみた感想

LSTMによって文章を生成することはできましたが、その原理はさきほど説明した通り「この単語の並びが来たら、次はこの単語でしょ」というもの。
逆に、人が文章を書くときは表現したいイメージがあって、それに沿って単語を並べていくものです。

例えるなら、
人    ・・・ 目的地があってそこまでの道を決める。
LSTM ・・・ 道を進んでいくとどこかにたどり着いた。

LSTM(機械学習)による文章生成は単語同士の偶然の出会いの産物に思えました。
しかし、人が書いた文章にしても、書く時は違えど読む時は偶然の出会い。
結果からみると同じなのかもしれません。

参考

lstm_text_generation.py
kerasの公式サンプルです。

Keras LSTM の文章生成を単語単位でやってみる
今回のお手本にさせていただきました。

Keras LSTMでサクッと文章生成をしてみる
上記サイトの一文字ずつ生成していく版。
単語に分かち書きしない分、こちらの方が理解しやすいです。

LSTMでカフカの「変身」を元に文章生成してみたら、何者にもなれなかった話。
特に意味はないとのことですが、カフカの変身を使用して、生成されています。
ただし、アルファベットで学習してます。

青空文庫
こちらのデータを使わせていただきました。

コメント

タイトルとURLをコピーしました