みんなの工作教室「カットアップソフトを作ろう!」第三回



 というわけで、日本語の文字列はいたってシームレスである、というのが前回の話でした。今回は、この日本語文字列を、内容を解析することなくごく安易に切り刻む方法についてお話します。例によってお相手はEVこと細馬宏通です。



Dr. Burroughsの解決:特定の文字列で断片化する。


 句読点で切るだけでは、いささか粗すぎる。かといって、文構造を解析して、単語単位の推移行列を洗い出すほどの精度はカットアップには不要・・・というわけで、「Dr. Burroughs」では、もっと手軽な方法を考案した。

 それは特定の文字列でとにかく切る、というものである。

 たとえば、日本語の「を」という文字は、たいていの場合、名詞句の後に出現する。「わたしとめて」「ジュリエット愛して」「穴から飛び出してきたとんでもなく巨大かつ卑劣なアナウサギつかまえて」。ほら、どんな長い句であろうと、「を」の前は名詞句だ。「あまつかぜくものかよいじふきとじよとめのすがたしばしとどめん」。こういう「を」は例外だが、カットアップでは例外も「味」なので気にしないことにする。

 「を」は一文字だが、何文字かを区切り文字列にしてもよい。たとえば「という」の三文字は多くの場合、名詞句のあとに出現する。「わたしという存在」「あなたという人はまったく」「むかしむかしあるところにじゅげむじゅげむごこうのすりきれ・・・・長久命の長助という男が」。ほら、どんな長い句であろうと、「という」の前は名詞句だ。「赤いマントを身にまというたいながらやってくる男」。こういう「という」は例外だが気にしないことにする。
 こうして特定の文字列で切断することで、文単位よりも細かい断片を得ることができる。


Dr. Burroughsにおける「文脈」の考慮:断片の前後に目印をつけておく。


 断片はできた。ではどうやって貼り付ければよいだろう。いちばん簡単なのは、でたらめに貼り付けることである。たとえば「ジュリエットわたし穴から飛び出してきたとんでもなく巨大かつ卑劣なアナウサギジュリエットというわたしというとめて愛して・・・」
 これはこれでおもしろい。が、ちょっとまった。

 すでに書いたように、「を」には、単に「『を』で切れる」という情報だけでなく、「『を』の直前は名詞句である」という情報も含まれている。ところが、でたらめにつないだのでは、「直前は名詞句である」という情報の方は生かされない。これはいささかもったいない話だ。
 では、各断片が名詞句であるかどうかをチェックして、それを「を」の直前につなげてはどうか。しかし、それをするためには、あの、ややこしい文構造解析を始めなければならない。

 そこでDr. Burroughsではごく簡単な方法をとった。
 それは「『を』で終わった断片には『を』で始まる断片をつなげればよい。」というものだ。これなら「あなたつかまえて」「ジュリエットとめて」「穴から飛び出してきたとんでもなく巨大かつ卑劣なアナウサギ愛して」てなぐあいに、手堅く狂ったフレーズがバリバリできることになる。

 これを実現するには、各断片の前後に、どんな場所で切れ目を入れたのかという情報を添えればよい。切れ目は簡単に記号化してしまおう。たとえば文頭は「0」・「。」は「1」・「、」は「2」・「を」は「3」・文末は「9」といったぐあいだ。
 この記号を使って「わたしは昨日あなたを見かけたのですが、声をかけそびれてしまいました。今日、わたしはあなたをまた見かけるでしょうか。そして明日は、明日の風が吹く。」という元ネタを断片に切ると以下のようになる。


直前
内容 
直後
0
わたしは昨日あなた
3
3
見かけたのですが
2
2

3
3
かけそびれてしまいました
1
1
今日
2
2
わたしはあなた
3
3
また見かけるでしょうか
1
1
そして明日は
2
2
明日の風が吹く
1
1

9

 前後の「文脈」を考えて貼り合わせるには、1の次には1を、2の次には2を、3の次には3を・・・という風に張り合わせの規則をもうければよい。すると、たとえば

0
わたしは昨日あなた
3
3
をかけそびれてしまいました
1
1
。そして明日は
2
2
、声
3
3
をまた見かけるでしょうか
1
1
。今日
2
2
、明日の風が吹く
1
1

9

 といったカットアップ文が生成される。この方法では、とくに推移確率は計算しない。単に、次にくる断片の候補を絞っているだけなので、いたって簡単である。

 (March 2003)
<<第2回 | to the Beach | Cutup index | 第4回>>