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



 というわけで、「特定の文字列で切って貼る」という安易ながら単純な解決が、日本語のようで日本語でない絶妙なカットアップ感を醸し出す、というのが前回の話でした。今回は、この「鋏/糊」の考え方をもう少し広げてみましょう。例によってお相手はEVこと細馬宏通です。



細菌とウイルス(余談)


 もともと、この「特定の文字列で切って貼る」という考え方をわたしが思いついたのは、生物の時間に習った「制限酵素」のことを思い出したのがきっかけでした。
 大腸菌のような細菌には、自分に取り付いたウイルスを切断する能力があります。
 といっても、大腸菌には感覚器はないのですから、ウイルスのありかを目で確かめることなどできません。
 大腸菌がじっさいにやっているのはごく単純なことです。多くの細菌は、特定の塩基配列を認識して切り離す「制限酵素」を持っていて、ウイルスのDNAに含まれている特定の塩基配列を自動的に切ってしまいます。たとえば、大腸菌には、EcoRIという制限酵素があって、5'-GAATTC-3' (5'は塩基配列の始まり、Gはグアニン、Aはアデニン、Tはチミン、Cはシトシン、3'は塩基配列の終わり)という塩基配列が酵素とくっつくと、その部分を切ってしまいます。
 制限酵素と逆に、特定の塩基配列でお互いの断片をつなげてしまう酵素もあります。これはDNAリガーゼと呼ばれ、DNAの修復に使われます。
 細菌の持っている制限酵素を取り出してDNAリガーゼと組み合わせれば、手元のDNAの特定の部分を切り貼りして、別のDNAと組み替えることができるようになります。これが「遺伝子組み換え」と呼ばれる技術です。
 じつは、この考え方は、カットアップに使っている「鋏/糊」とほぼ同じです。
 バロウズ→言語ウイルスとの戦い→細菌→制限酵素という連想で、昔習ったこの話を思い出し、「鋏/糊」という考え方にたどりついたという次第です。

ゆるやかな糊をデザインする

 さて。
 特定の文字列を、あたかも制限酵素とリガーゼのごとく「鋏/糊」として使えば、カットアップできることはわかった。  しかし、いつも特定の文字列だけを使っていたのでは、カットアップのバラエティは限られてしまう。それに、人によって、どこで鋏を入れたいか、何と糊付けしたいか、好みというものがあるだろう。
 つまり、鋏と糊はカスタマイズできるほうがよい。

 ここでポイントとなるのは、カットアッパーは意外な結果を好む、ということだ。規則正しく鋏と糊が作用しただけでは、その組み合わせはある程度予測がついてしまう。断片を貼るときに、もう少し規則をゆるやかにしたほうがよい。

 そこでDr. Burroughsがとったのは「鋏を分類する」というものだ。
 たとえば、「。」という文字列を鋏として使うとしよう。もし、かならず「。」で切って「。」で糊付けするなら、どんなにカットアップしても、必ず句点どうしがつながる。言い換えれば、文の単位は必ず保たれる。
 しかし、考えてみれば「。」にいつも「。」をつなげるだけが能ではない。たとえば「、」は「。」についで文が劇的に切れる部分だ。「ほんとに、おれは、バカだ。」という文章は、「ほんとに、バカだ。おれは、」とつなげてもそれなりに通じる。ならば、いっそ、「。」と「、」は、お互いに自由に糊付けできることにしてはどうか。  同じように、「を」で切った断片を、「に」「で」などの助詞で切った断片でつなげたり、「という」という引用を示す文字列を「ってば」「なんつって」「とかの」などといった同類の断片どうしでつないでも構わないだろう。
 たとえば、鋏をグループ分けして以下のように分類してみよう。


グループ番号
文字列
0
空白
0
0
0
1
1
1
2
という
2
なんつって

 もちろん、文法や意味にとらわれずにもっと大胆な分類をしても構わない。

 貼り合わせるには、0の次には0を、1の次には1を・・・という規則をもうければよい。

 たとえば、
「わたし 、これから何 をどうすればいいのかしら なんつってちょっと悩んでみたりしましたが何か ?これ という問題があるわけでは 、もちろんないの 。あなた を困らせたいわけでもあなたに何かしてほしいのでもないの。 ないのないのないの 。」 という文章は以下のようにカットアップされうるだろう。

0 わたし 0
0 ないのないのないの 0
0 ?これ 2
2 なんつってちょっと悩んでみたりしましたが何か 0
0 。あなた 1
1 をどうすればいいのかしら 2
2 という問題があるわけでは 0
0 、これから何 1
1 に何かしてほしいのでもないの 0
0 、もちろんないの 2

お気に召すまま:鋏と糊のカスタマイズ

 さて、せっかくゆるやかな糊を作るのだから、その方法を何もプログラマだけで決める必要はない。
 カットアップソフトをプログラムするときは、ユーザーが鋏を自由にグループ分けできる仕組みを作っておけばいいだろう。たとえば、鋏辞書のファイルを別に作って、ユーザーがエディタで編集できるようにしておけばよい。じっさいDr. Burroughsでは、「鋏と糊のカスタマイズ」という編集画面を設けて、ユーザーの編集を誘っている。

 カットアップソフトというと、何もかもが自動的で、ただ勝手に文章が吐き出されるプログラムを思い浮かべるかもしれない。しかし、じつは、何をどのように切り貼りするかというところが、カットアップソフトのおもしろさであり、できればそこは、使う側まかせにしたほうが、より結果が楽しめるというわけだ。
 (March 2007)

<<第3回 | to the Beach | Cutup index