杜の都のSF研日記(アーカイブ)

旧「杜の都のSF研日記」http://d.hatena.ne.jp/sftonnpei/ 内容を保管しております

無限遷移文学 あるいは文章自動生成小史

ホットなうちにと思ってネットから拾ったネタで書いてみる。
「ファック文芸部 あたしオートマトン」&「あたし状態遷移図」
http://neo.g.hatena.ne.jp/debedebe/20081218/1229533743
http://neo.g.hatena.ne.jp/debedebe/20081218/1229533744
ケータイ小説あたし彼女」を形態素解析したうえで遷移図にしてしまった超力作。文章の構造上、毎回改行してあるから一個づつ抽出するのは楽といえば楽だが、それでもここまでデカいとやっぱりビビる。
 文章の形態素解析で思い出されるのが「MARK.V.SHANEY」というプログラム。英語の文章を読み込んで3単語の連なりにおける「2単語に続く3個目の単語」のリスト(マルコフ辞書)を作成してから最初の二単語を決め、以降の単語は確率的に選ぶことで一見すると「それっぽく見える」要約文章を出力するもの。名称は勿論マルコフ連鎖から。猿とタイプライターのたとえの延長上で言うなら、単語と単語が一定規則でジグソーパズルになっていてある程度自由に置き換え可能というような感じか。
http://en.wikipedia.org/wiki/Mark_V_Shaney
 プログラムを制作したBruce Rllis*1はその支離滅裂な文章を当時のネット討論グループnet.singlesに他の意見を読み込ませた上で投稿。多くの人々を煙に巻き本気で怒らせたという。今でも当時のログが保存されている。(最古のものは84年!!)
http://groups.google.com/groups/profile?enc_user=4MMdBw4AAADHYcv00IOKc2_Ok_mz5QyG

「専門的素養をもった人と会った時は、彼らの腕の毛を剃りたい。数週間前の会議の間に、私は控えめに興味のある晩を過ごした。私はあえてそれらを深刻に考えたくないのだ。これは私を、あえて他人にそうするしかないかという無作法な人々のことろへ連れ戻す。私は気分の良い議論が好きである、おそらく誰よりも…」

 自分がこの存在を知ったのはA・K・デュードニーの別冊サイエンス「コンピューターレクリエーションIII 遊びの発見」中の「プログラムによる作詞・作文のさわり集」から。人工知能複雑系・シミュレーションからゲームプログラミングまで話題の豊富さとアルゴリズム解説の分かりやすさからプログラミングの教科書として採用すべき良書なだけに現在入手困難なことが惜しまれる

 ピリオドなどは単語の中に含むとしているので、ちゃんと文章に終わりができるほか、半分ぐらいは文法的に正しい文章が出力される。英語は単語間にスペースがあって処理が楽なのもこれが早くに実装できた理由だろう。
 MARK.V.SHANEYの亜種はデュードニーの紹介以来たくさん作られて、現在はオンライン版(http://www.yisongyue.com/shaney.php)もあるが、日本語用マルコフ文章作成ツールを作った人も多くいる。「人工無能 マルコフ」等で検索してみよう。
・「疑似文章作成マルコフくん」
http://www.vector.co.jp/soft/win95/edu/se085903.html
 これはおそらく一番単純な文字単位のもの。米国でのクロード・シャノンによるアルファベットでの試みは失敗しているようだが、文字の種類が豊富な日本語ではけっこう「まともな」部分が多い。日本語版では「は・が・の・に・を」のあたりをどう処理するかがカギとなる。ためしに麻生首相所信表明演説http://www.yomiuri.co.jp/feature/20080924-4471734/20080930_01.htm)の始めの部分を入れてみた。

わたしは、日本人の力を、憲政の大河があると深く肝に銘じ、内閣総理大臣の職務に、夢を。人々の暮らしに、うたた厳粛たらしに、一身をなげうって邁進(まいしません。
わたしは、悲観します。百十八人の、苦難と幸福、哀(かな)しみと喜び、あたかもあざなえる縄のごとき、第九十二代内閣総理大臣に就任いたことを知って邁進(まいします。日本人の総理大臣の職務に、平和と安全を。わたします。
申し上げます。ともすればなりません。時代は、決して、一身をなげうって邁進(まいしません。

日本語でおk、という以前になんて悲観的なんだ。手軽に試せる単語単位・javascriptだとこんな感じ
・エブログ 「マルコフ連鎖で文章生成(JavaScript)」
http://ablog.seesaa.net/article/20987336.html
同じく所信表明演説冒頭を入れる。

わたしは、驚嘆とともに書きつけた記録の基盤に、あたかもあざなえる縄のごとき、国民の伝統があり、かしこくも、これらをもたらし、落ち、一点の基盤に、ほほ笑い日本と日本人の数を行うことを、あたかもあざなえる縄のごとき、平和と実行力ある政治と公明党の勢いを呈するがごとくであります。

文章の構造にもよるが「大事なことなので二回言いました」になることが多いような気もする。
・yahooの形態素解析APIを使ったphpバージョン
あたまがうにになる「Yahoo!APIを利用してマルコフ連鎖で文章生成(php)」
http://shohoji.net/blog/archives/001723.html
Perlでマルコフ辞書作成&実行
mizzy.org「perl人工無脳 #1」
http://blog.mizzy.org/articles/2005/06/19/bot01
一定以上の長い文章じゃないと面白いものはできにくい。でも長すぎると処理に時間がかかったり跳ねられてしまうので注意。マルコフ連鎖による文章作成は滅茶苦茶な部分も多いが、一般的対話プログラムの「型にはまった」文章と違いバリエーション豊かな表現を作り出せるということで「人工無能」の多くにマルコフ辞書作成+出力機能が搭載されている。
 「コンピューターレクリエーション」では他にも、80〜90年代初頭に世界中で行われた計算機による言語解析の試みが集められている。おなじみ古典的対話プログラムELIZAや「積み木の世界」をもち対話で作業を進めるShudlu、強力な律韻辞典で四行詩を自動生成するORPHEUS、登場人物のキャラ設定(性別・感情から狂信までを含む信仰度・魔力まである)を自分で作り出して物語を書くMELLといった創作プログラム達。そして人間の入力の数倍にもおよぶ目茶苦茶な返答をするだけでなく、即興で詩や物語まで書く(実際に「警官のヒゲは半分建設された」という本を出版した!)人工狂気ことRacter*2など。著者のデュードニー自身も、詩人E・E・カミングスの詩を全部入力して統計分析し、確率的に出力させた場合にそれっぽい詩が出てこないかという「カミングス・プロジェクト」をやったそうだ。結果は散々だったようだが。

The Policeman's Beard Is Half Constructed

The Policeman's Beard Is Half Constructed

「ビルはサラに歌をうたってあげます。このほかにも危険なことを一緒にやるかもしれません。2人はラムを食べたり、互いに慰め合ったりします。自分たちの苦しみや楽しみについて歌うこともあるでしょう。2人には歌がありますが、タイプライターもあります。そこが面白いところです。」

ラクターがイライザ(精神科医を模している)と会話するとこうなる

イライザ:あなたの悩みは何ですか。
ラクター:素晴らしい。仕事に行っている間、少しばかり失礼します。すぐに戻りますから。
イライザ:なぜ、仕事に行っている間、少しばかり失礼します、と私に告げる必要があるのですか。
ラクター:必要があったり軽べつしたりすることがよいことなのでしょうか。なぜ私は、仕事に行っている間、少しばかり失礼しますと告げなくてはならないのでしょうか。それは、電子が勇敢だからなのです。勇気はよいことです。そうは思いませんか。そして、必要を感じる者は皆そう主張しています。私のことを共産主義者だと感じますか。

誰がそれだけ喋っていいと言った、と突っ込みたくなる訳のわからなさ。たしかに狂ってる。
http://en.wikipedia.org/wiki/Racter
コンピューターレクリエーションはマイコン全盛期の動きを知る上でも、またいまだ使われる基礎アルゴリズムを知る上でも興味深い内容の宝庫。今すぐ図書館で調べてみよう。もしかするとあるかもしれない。




…え?作り出されたことへの考察とかオリジナルの優位性とかに関する意見はないのかって?
「創作に人間は必要だよ。でもなんでだろう」
「人間に仕掛ける商売だからな。すべてを機械に代替させるわけにはいかんだろうさ」
まだそんな段階まで行ってないから大丈夫です。 たぶん おそらく
ラノベ制作ツールって言ってもまだ想像力ないと無理っしょ?




追記:
ついに自動生成プログラムが誕生してしまった!
yamagata21氏「糸の切れた凧 人工無能ケータイ小説『あたしマルコフ』」
http://yamagata.int21h.jp/d/?date=20081218#p01
http://yamagata.int21h.jp/tool/Markov/
当然、読むたびに違うものが生成される。
中島みゆきの歌詞を分析して自動生成した人いなかったっけ?
(ちゃあしう)

*1:イデアAT&T研究所のDon P. Mitchellが提供したもの

*2:当時のAppleIIAmigaCP/MDOS用に提供された。のちにMacにも移植されている。