次の手をどこに打つか

次に何しようかというのを、ぼんやりと考えている。


物語構造を取り入れるというのが正しいアプローチだろうとは思うのだが、物語構造というのは知識表現であり、その知識表現の蓄積が僕にはない。


在野のアマチュアが武器に使えるのは、ネット上に転がっている大量のテキストである。


ということで、今しばらくテキスト処理だけで何ができるかというアプローチを進めたい。


まず、NStepLSTMがわりと面白いということが分かったのと、GPGPUを使えばそこそこリーズナブルな時間で学習できるということも分かったので、使うGPUの性能をあげてちゃんと学習させたデータを使い、文章の自動生成で遊んでみようかと考えている。


言語モデルから文章を自動生成すること自体は既に試しているので、それの延長である。

以下のトリックは混ぜ込んでもよいかと考えている。


・文の先頭になる単語の集合を求めて、そこから発生率に応じたピックアップをする

・次の単語候補は、僅差の場合だけランダムに高確率なものから選ぶようにする


これでどんな文章が出てくることやら。


では次に何をするか。


小説とはテキストの連なりである。ではどういう法則で連なっているのだろうか。


ある章の次には、どういう章が来るだろうか。


ある段落の次には、どういう段落が来るだろうか。


ある文の次には、どういう文が来るだろうか。


これを、既存テキストから演繹するアプローチで考えると、要約作成の技術の応用になる。


要約は、その文章の集合の中から意味的に重要な文あるいは語群を抽出して、短い文章を作成する。


文単位で考えてみよう。


文の中で重要な単語は何かと考えると、名詞と動詞であろう。文から名詞・動詞を抜き出した単語群を作る。それをもとに、「ある単語群の次にどういう単語群が出るか」を推論させる。


そうすると、単語群のサジェスチョンができるのではなかろうか。


サジェストされた単語から人間が作文をしてみても面白いかもしれない。

その文=人間が作文した文を元に、次の単語群がサジェストされる。

これを延々と続けてみるわけだ。


どうなるか。分からない。でもセッションみたいで面白そうだ。


単語群から文章生成をしてみてもよい。


まず、単語群対次の文頭の単語を学習させる。次の文頭はこのモデルに基づいて得る。


単語の連なりはNStepLSTMで学習させたものを使う。文に含まれるべき語群と、次の単語として高確率なものを照らし合わせながら次の単語を選ぶ。ここは若干ヒューリスティクスになるだろうか。


単語群サジェストから粒度を挙げていき、段落に含まれる単語群、節に含まれる単語群、章に含まれる単語群としていったら、最終的にストーリーになるかというと……まあおそらくならない。そんなに単純な話ではないだろうというのは、容易に推測できる。


何が出てくるか分からないけれど、何か出てくるのではないかというのは、非常にわくわくするので、はやく暇を見つけて何か出させたいところだ。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

小説生成システム開発計画 - プロジェクトNUE 木本雅彦 @kmtmshk

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

フォローしてこの作品の続きを読もう

この小説のおすすめレビューを見る

この小説のタグ