pythonでこんなことやってみた(機械学習編)
おはようございます!
やってきました、不定期開催の大人気企画(ではない)、
「pythonでこんなことやってみた」の時間です!!
今回は
システムに小説を読ませて(学習させて)、作家の傾向を反映させた文章の生成
に挑戦したいと思います!
前回(というか初回)は自然言語処理によって
小説内においてどのような単語が何回使われていたかを測定するコードを書きました!
これによって小説における単語の使用頻度がわかりました。
今回はこの情報を踏まえて、
作家の癖をすべての文章から学習していきます。
こうして得た学習結果から新しい文章の生成をします。
今回も前回に引き続き宮沢賢治の『銀河鉄道の夜』を題材にしてみたいと思います!
『銀河鉄道の夜』の「街のほうへ走りました。」という文章に続くように生成したいと思います。ちなみに小説をシステムが1回読むごとに文章は生成され、それを100回繰り返した結果を一部書き出しました。
1回目
「ていましいた。て。いいていをた。ていかいてた。そのいいたたいまるまししたのてたいしいっいいいかないのたていいしないないのしてしいらいいてた。」
→何を言っているかわかりませんね(笑)人間の赤ちゃんが言葉を覚える段階のようにも見えなくないです。こうやって徐々に文章を学習していきます。
10回目
「どうしたのです。」
「ああ、そのです。」
「ああ、あのように、あっていました。
「ああ、あの方は、おって行きました。
「ああ、そのでもう。」カムパネルラが、もうなって行きました。
→おや、なんとなく文章になってますね!さらには「カムパネルラ」という単語も覚えたそうです。いい感じに学習長していますね。どんどん行きましょう!
50回目
「おって、んのお母さんがねおじめていまってか。」
「ああ、ごとごらってしいいましたら。」
「ああ、こんでおもだけでだねえ。」
カムパネルラは、なぜかそう云いながら、少し顔いろが青ざめて、どこか苦しいというふうでした。
→人間が想像力を働かせれば文章から状況を少しは読める気がします。では一気に100回学習したあとの文章を見てみましょう。
100回目
ああすぐみんな来た。カムパネルラの方は見また。そうで、青年は自分でカムパネルラのよと、白くなっかなすぐったりしの一つのがいるのできるんだりのぞきにいはなんがりまっ黒な外を見ているよ。
→どうでしょう?50回目とそこまで差異があるように見えない気がしますね。
どうやら学習には限界があるよう感じます。現にシステムの学習結果を見ると、小説における文章の構成と誤差はほとんどないとの結果が返ってきました(笑)
原因としては学習用のデータが『銀河鉄道の夜』のみというサンプルの少なさがあげられますね。宮沢賢治の小説をいくつかデータにした場合もう少しもマシな結果が得られるのではないかと思います。
データを扱うことの難しさを痛感した今日この頃でした(;^ω^)