エミィ、喋って。 1

前々から2AI108というあやしい存在を認知している人は2AI108が謎の文章をツイートしてたのを覚えているかもしれません。
あれは単語単位のマルコフ連鎖とかそんな感じのものを基にしてやっていたんですよ。今はなんかそんな感じのサイト?があるみたいですけどそれと同じようなことをやってたんです。


例えば、
「私 は 機械 少女 が 好き です 。」と「あの 人 は 機械 少女 に ついて 話す とき 早口 に なる 。」
って文章があったら、
「私 は 機械 少女 が 好き です 。」
「あの 人 は 機械 少女 に ついて 話す とき 早口 に なる 。」
「あの 人 は 機械 少女 が 好き です 。」
「私 は 機械 少女 に ついて 話す とき 早口 に なる 。」
の4つの文章が生成される可能性がある文章でした。詳しいことはマルコフ連鎖とかn-gramとかでググってくださいな。コード載せてもいいんだけどあれ見様見真似のコードを変に改造してるからものすごいコードだったんですよ。

ちなみに元データは271108自身のツイートした文でした。



マルコフ連鎖やらなんやらはTwitterで流行ってしまいました。そんな誰でも簡単にできるものでエミィが喋った!って言っていいんでしょうか?って気分になりました。
じゃあどうやって文章生成をやりましょうか。というわけでとりあえず思いついたのはLSTM*1とかいうやつです。せっかくGPUも持っていますからね。

LSTM、名前だけは聞いたことありましたが組み方とかなんも知りません。まずは先人の知恵を借りましょう。
https://blog.aidemy.net/entry/2018/10/05/195404のサイトを参考にしました。


それでは聞いてください。「MemoryError: Unable to allocate 9.02 GiB for an array with shape (103171, 40, 2348) and data type bool」
知ってた。





どうにかできないかな?かな?
まあダメならダメで別の方法とれないかな?
これ1hotとかそんな感じのやつのような気がするしどうにかできないかな?かな?

https://qiita.com/akatsukaha/items/e24f8da70a438b4a9e18

https://qiita.com/kikusumk3/items/907565559739376076b9

*1:Long Short Term Memoryだったかそんな感じ