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



 ハーイ、講師はみんな外国人、辺境の浜辺、日本にようこそ。カンジ、カタカナ,ヒラガナ、ニホンゴ、ムズカシイネ。ドシテ、ニホンノヒト、ニホンナノニ「チャイニーズ」キャラクタツカイマスカ? じゃかましいわい! というわけで、今回は、日本語をばらばらにする方法について考察します。例によってプログラム言語は一切なし、プログラミングに興味はないがカットアップには興味があるという方もお気軽にご参加下さい。
 お相手はEVこと細馬宏通です。

(カットアップにとっての)日本語の難点:分かち書きのないこと


 いざ日本語の文章をカットアップしようとすると、すぐにひとつの壁に当たる。それは「日本語には分かち書きがない」という問題だ。
 英語では単語がどこで区切れるのかが空白によって示されているから、空白文字で元ネタを区切れば簡単に「ばらし」ができるし、断片どうしの推移も簡単に計算できる。が、日本語の文字列にはこの手がかりがない。
 したがって、日本語をカットアップする場合は、断片を区切るための何らかの手がかりを考える必要がある。


日本語をばらす(1):句読点の利用


 日本語を機械的に区切るもっとも簡単な方法は、句読点や改行記号を利用する方法である。「。」で断片化すれば、文単位の断片を得ることができるし、「、」と「。」で区切ればおおまかな節で区切ることができるだろう。この他「?」「!」など、句読点に準ずるものを用いてもよい。


日本語をばらす(2):文字種で分ける


 かつて、パソコン通信時代、MS-DOSのフリーソフトに、「かなむし」という秀逸なものがあった。これは、元ネタのひらがなやカタカナをスキップして漢字だけを拾い上げて表示する、つまり、かなを無視するので「かなむし」。しかけは単純なのだが、じっさいに使ってみると、おもしろいことに、多くの文章は漢字だけ拾い出すだけでその主張がおぼろげながら分かってしまう。簡単な原理で日本語の漢字に含まれた情報量を再考させる衝撃的なソフトだった。

 このソフトにならって、漢字とひらがなを切り分けるという方法が考えられるだろう。日本語は文字種によって文字コードの領域が異なるので、文字コードを利用すれば、漢字とかなの切り分けのみならず、漢字の部首による切り分け、ひらがなやカタカナの音による切り分けなど、より凝った断片化が考えられる。


日本語をばらす(3):文構造を解析する。


 いっそ英語のように、日本語を正確に単語や分節で文字列を区切り、推移行列を計算する方法も不可能ではない。その場合は、なんらかの日本語解析用のデータベースや辞書の利用を考えることになるだろう。パソコンの処理速度が速くなった現在、こうした作業は(解析データベースや辞書にさえアクセスできれば)困難ではない。

 通常、日本語文構造解析は、的確に単語を検索したり、的確な状況で的確な日本語を生成するアルゴリズムを考案するために行われている。しかし、もっともらしい日本語を生成するプログラムなら、規則を少し緩めるだけで、もっともらしいがどこかおかしい日本語を生成することが可能なはずである。現在、人工知能などで用いられている文生成アルゴリズムを改変するだけでも、カットアップ的な文章が生成されるだろう。



しかし、もっと適当に、それゆえに酷薄に?


 もし、日本語を解析するのが目的なら、文構造解析に本気に取り組むのもいい。が、こちとらカットアップができればいいのであって、たいそうな日本語解析は必要ではない。だいいち紙と鋏を使ったカットアップだって、そんなに日本語をじっと見つめているわけではなく、あちこちの雑誌や本をめくって「この辺かなー」ってところを適当に切っているだけだし、この「適当」な作業の過程で、いかに本人の意識がジャンプするかが、後のカットアップにもある程度影響を及ぼす。
 そのためには、単に文法的につながりのよい日本語を生成することを目指すよりも、あるわずかなことばのつなぎ目をきっかけに、まったく異なるテキストから、こちらの予想をくつがえす流れが浮上してくるような環境のほうが望ましい。

 では、この感じ、つまり、「新聞を読んでいるときの人の目は、一度に一個の考えには 一つの文というアリストテレス風のきっちりした流儀で、ある 記事を追っている。だが、同時に潜在意識下では両側の記事を 読んだり、隣に坐っている人の存在に気づいている。」くらいの感じ、たまたま目に入ったフレーズがこちらをまったく別の時空間に連れて行くようなつなぎを実現するにはどうすればよいだろうか。というわけで次回に続く。



<<第1回へ | to the Beach | Cutup index | 第3回>>