張子のマルコフ
楠樹 暖
お遊びで人工無能のアプリを作った。文章を自動的に生成する類のものだ。人工無能とは人工知能とは違い、あまり賢くはない。与えられた入力に対して機械的に応答するだけだ。僕が作った人工無能は与えられた文章を元にして別の文章を作り出すようにできている。
人の文章は文字の連鎖によってできている。もう少し詳しく言うと、文章は名詞や助詞、形容詞、動詞などの形態素と呼ばれる意味を持つ最少の単位に分解できる。この形態素を繋ぎ合わせて一つの文にしているのだ。たくさんの文章を形態素解析という手法で形態素に分割して統計をとると、ある形態素の次に、他の形態素が来る確率が分かるようになる。たとえば、一つの単語を選んだら、それに続く形態素は助詞になり、その助詞に続く形態素が動詞になったりする。アプリでは、続く形態素は毎回同じではなく、確率に従ってランダムに選択されるように作っている。
この『未来の挙動が現在の値だけで決定され、過去の挙動と無関係である』という確率統計モデルのことを『マルコフ連鎖』という。僕のアプリはマルコフ連鎖を使った文章生成アプリだ。
文章生成アプリの入力文章として、六年間毎日書き綴ってきたブログの日記を使うことにした。
アプリを自分のスマホにインストールし、起動をした。マルコフ連鎖のきっかけとなる最初の単語を『僕は』にしてみた。
六年分の日記の文章が形態素解析により分解され、マルコフ連鎖により結びつきの確率が高い形態素が貼り付けられる。そして、出てきた文章が――
『僕はA子ちゃんが好き』
えぇー! ちょっと待った! ブログにはそんなこと書いてないよ!
確かにA子ちゃんのことは好きだけど、そんな直接的なことを書いた覚えはないよ。
既存の文章の再構成で、新しい文章が出てくることは予想していたけど、心の中のことを言い当てられるとは……。たぶん、自分でも気がつかないうちに「A子ちゃん」とか「好き」を近いところに書いていたんだろう。恐るべしマルコフ連鎖!
気を取り直してっと。元が日記なので、日付を入れてみよう。昨日の日付っと――
『2015年9月12日今日は地震があった』
うん、確かに昨日は地震があったな。ん? でも、昨日書いたブログには地震のことは一言も触れていなかったはずだけど……。別の日付も入れてみよう――
『2014年4月1日新しい年度の始まりだ。A子ちゃんと仲良くなれるといいな』
あぁ、また出てきたA子ちゃん。おぼろげながら記憶にある。その日にそう思ったことを。ブログを確認してみるとそんなことは書いていない。
その後もいくつか日付を入力してみた。出てくる文章はその時あったことや、思ったことが出てくる。でも、実際のブログに載っていないことも多かった。
ひょっとしてこのアプリは文章中の行間を読んで、それを文章化してくれているんじゃないのか?
更に日付を入力することで疑惑は確信へと変わった。
『2015年9月14日バスでA子ちゃんに会って話をした』
つい明日の日付を入れてしまった。これは未来予測? A子ちゃんは電車通学でバスなんか載らないはず。まぁこれはでたらめな文章だよね。念のため日付+『電車』にしてみたらどうかな?
『2015年9月14日電車に乗ったらチャージ金不足で改札が閉まった』
こっちにはA子ちゃん出てこないんだ。
次の日の朝、半信半疑でバスに乗ってみた。するとA子ちゃんが乗っていた。
「!?」
「おはよー!」
「あれ? いつも電車じゃなかったっけ?」
「うん、朝テレビを見てたら電車が止まってるっぽかったんでバスにしたの」
マルコフ連鎖の未来予測が当たった?
大学の帰りに寄り道をした。A子ちゃんに会えたことと、マルコフ連鎖の未来予測が当たったことで興奮してチャージするのを忘れて料金不足で改札が閉まってしまった。
僕のアプリのマルコフ連鎖が未来予測をしている。
それから毎日、アプリに翌日の日付を入力してマルコフ連鎖の未来予測を試してみた。
分かったことは、
(一)日付だけでもある程度の未来予測の文章は出てくる
(二)日付+単語で状況を絞ることができる
(三)日付+単語で出てきた文章でも、行動を避ければ未来予測を回避できる
ということである。
特に(三)が重要だ。これで、あらかじめ危険な未来予測を知っておけば安全に過ごすことができる。
『2015年10月1日今度の土曜日にA子ちゃんを映画に誘ったがバイトを理由に断られた』
『2015年10月1日今度の日曜日にA子ちゃんを映画に誘ったらOKをもらえた』
つまり、A子ちゃんとデートしようとしたら日曜日に誘えばいいんだ。
それから僕とA子ちゃんは最適な選択肢で順調に仲を深めていった。
『2015年11月1日A子ちゃんに告白したが友達でいましょうと断られた』
恐れていた未来予測が出てきた。これを回避するにはどうすれば……。
『2015年11月1日プレゼントを渡しA子ちゃんに告白したらOKをもらえた』
ふぅ、なんとかセーフ。晴れてA子ちゃんと恋人同士になれた。
A子と付き合いだして一か月、僕のアプリのマルコフ連鎖の未来予測のおかげで何もかもが順風満帆。次の一大イベント=クリスマスには失敗をしないように入念な準備をしないと。
『2015年12月24日A子を亡くした悲しみに耐えられない』
えっ? どうしたの? 何があったの?
『2015年12月23日』
『2015年12月22日』
『2015年12月21日』
『2015年12月20日A子が死んだ』
もっと詳しく!
『2015年12月20日A子は交通事故で死んだ』
『2015年12月20日A子は信号無視をした車に気づくことなく交通事故で死んだ』
『2015年12月20日A子は急いでいたため信号無視をした車に気づくことなく交通事故で死んだ』
『2015年12月20日A子は僕との待ち合わせに遅刻して急いでいたため信号無視をした車に気づくことなく交通事故で死んだ』
『2015年12月20日A子は僕と付き合いだしたせいで僕との待ち合わせに遅刻して急いでいたため信号無視をした車に気づくことなく交通事故で死んだ』
『2015年12月20日A子は僕と付き合わなければ長生きできたであろうに僕と付き合いだしたせいで僕との待ち合わせに遅刻して急いでいたため信号無視をした車に気づくことなく交通事故で死んだ』
『2015年12月20日A子は僕と出会わなければデートに誘われることもなく僕と付き合わなければ長生きできたであろうに僕と付き合いだしたせいで僕との待ち合わせに遅刻して急いでいたため信号無視をした車に気づくことなく交通事故で死んだ』
嘘だ、嘘だ、嘘だ……。
『2015年12月20日A子が死んだ』
『2015年12月20日A子が死んだ』
『2015年12月20日A子が死んだ』
『2015年12月20日A子が死んだ』
その後、何度『12月20日』を入力しても同じ文章しか出て来なくなった。
何とか、回避する方法を見つけなければ……。
『2015年12月19日明日はA子とデートだ。夢のようだ』
夢? A子が死んだことも夢にできないか? 日付+『夢』で――
『2015年12月21日夢の中でA子が死んだ』
大丈夫……なのか?
『2015年12月22日すべては夢だったのだ』
『2015年12月23日マルコフ連鎖の未来予測はすべて僕の妄想だった』
あれ? 今までのことがすべて妄想?
あれ? あれ? 今日は何日だったっけ?
『2015年12月24日A子を亡くした悲しみに耐えられない』
スマホの時計を確認すると2015年9月13日となっていた。
アプリをアンインストールしなくちゃ。
(了)
張子のマルコフ 楠樹 暖 @kusunokidan
★で称える
この小説が面白かったら★をつけてください。おすすめレビューも書けます。
カクヨムを、もっと楽しもう
カクヨムにユーザー登録すると、この小説を他の読者へ★やレビューでおすすめできます。気になる小説や作者の更新チェックに便利なフォロー機能もお試しください。
新規ユーザー登録(無料)簡単に登録できます
この小説のタグ
関連小説
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます