マルコフ連鎖を用いた「水前寺っぽいど」の作成
秋山先生の新作が読みたい。
私がこうした文章論を書いている一番の動機は、何よりもまず、秋山先生の新作が読みたいからです。
技法をまとめればまとめるほど、その技術力の高さに、自分では再現することが不可能であることを痛感するのですが、ふと、文章の自動生成プログラムを用いたなら、何かしらそれらしいものが書けるのでは、と思いつきました。
自動生成には、マルコフ連鎖を用いる方法とディープラーニングを用いる方法があるそうですが、今回は、手軽にそれらしい文章を作ることができるマルコフ連鎖を利用し、水前寺の全セリフを抽出したテキストを元データとして学習を行ってみました。
計算部分はpythonのmarkovifyというライブラリに任せているので、ほとんど自分で作っている部分はありませんが、マルコフ連鎖とは、要するに、特定の語句の次に来やすい語句のつながりを記録して、確率的に語句同士を繋いでいくプログラムです。
例えば、今回は、水前寺のセリフが元データなので、「浅羽」の次には、「特派員」や「くん」などが来やすくなっています。
ソースコードは下記のサイトを参考にしました。というより、ほとんどそのままです。
https://qiita.com/shge/items/fbfce6b54d2e0cc1b382
このコードだと、元データの最初と最後の語句が生成文の最初と最後に来る仕様なので、元データの順番を入れ替えてバリエーションを確保する方法をとりました。
ちなみに、元々markovifyは、英語などの語句同士の間に空白が入る言語を想定して制作してあるため、形態素分析プログラムであるmecabを間に入れて、品詞ごとに分離する作業が必要になります。
細かい部分はともかく、まずは表示をしてみましょう。
生成文1
『浅羽特派員。君がとやかく言う筋合いではなぜお前はそう思う? みんながそう言っておらんでどうする? ——これ、殿山なのか? あの腰抜けがそこまでは知らん。すぐ戻ってくる。健常者なら自分の兄貴を変態呼ばわりしていたというか腹に一物あるというか』
浅羽特派員の次に「君が」と続く文章があったのでしょう。その次の「とやかく言う筋合いでは」は、晶穂に言ったセリフでしょう。ある意味、イリヤに登場する全語句でしりとりをしているような印象です。
生成文2
『さあ君も、我々だけで警告を聞いてどうする! いいかね、スクープをモノにすると、被験者に直線のコースを歩かせる。もちろん基地側もそのあたりをなんとかさせればいい。昼休みにいきなり呼び出されていたか』
「すると、」などの接続詞+読点という箇所も分析対象になっているので、先に続ける語句はこういった箇所で飛躍的に増えていそうです。一方で、こうした箇所で話の流れがぶつ切られてしまうのかもしれません。
生成文3
『笑止!! 君がとやかく言う筋合いでは、この会議には入力と出力系が、共通点が気になる形で、園原電波新聞部は、何系統の入力系と出力があるのさ。人間には、全世界的に、体制からは慎重な距離を保つべきであるとするなら、とっとと科学なんぞやめて集中したがりはマニアの性だ。写真さえ撮れれば捕まったってか』
なんとなく水前寺のテンションの高さは再現できていますが、やはり意味は通りません。
生成文4
『うむ、かくなる上はだな。しかし一度閉鎖した汎用リチウムバッテリーが七本と、暗視ゴーグルと赤外線投光器と改造したことくらいは耳にしていて手も足も出んようなことがわかったことないか』
それほど話題が大きく逸れずに文章が生成されました。
が、秋山先生を口寄せするどころか、文章の内容は支離滅裂ですね。
マルコフ連鎖は、要するに、元データを活用した確率しりとりなので、不自然な文章が作られない代わりに、元データで実際に使用された語句とその繋がりしか使用できません。
あるいは、自作のキャラクターのセリフとのハイブリッドなどを試してみるとオリジナリティが出るのかもしれませんが、それは今後、試してみようと思います。
当初は、イリヤ全体を元データとして使っていましたが、使用するフレーズに統一性があった方が良いことに気がつき、水前寺のセリフのみを元データにしました。また、浅羽の両親と話している時のように敬語を使っている箇所は削ってあります。
もっと会話量の多いキャラクターを使う場合には、会話の相手ごとのまとまりを作って文章生成させると、より自然さが演出できるように思います。
おそらく、パターン認識手法を併用すれば、感情や話し相手などのパターンごとに文章を分類し、場面ごとの語句セットを用いてセリフを作成し、自然なやりとりを生み出すこともできるのではないかと思います。
秋山先生の作品を模倣する役には立ちそうにありませんが、今後、プログラムを用いて何か役に立つものが作れればと思います。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます