hirax.net::Keywords::「探偵!ナイトスクープ」のブログ



1999-07-22[n年前へ]

失楽園殺人事件の犯人を探せ 

文章構造可視化ソフトのバグを取れ

 今回は
夏目漱石は温泉がお好き? - 文章構造を可視化するソフトをつくる - (1999.07.14)
の続きである。やりたいことは以下の3つ

  1. WordFreqのバグを取る。
  2. 定量化に必要な数値を出す。
  3. とにかく遊んでみる。
である。まずは、プログラムのバグを取ろう。前回、プログラム中にバグがあると書いたが、問題は私がbmonkey氏の正規表現を使った文字列探索/操作コンポーネント集ver0.16の仕様を勘違いしていたことによるものだった。ファイルにGrepを書けた際に、テキストファイル中の一行中に複数の適合する単語が存在した場合に、本来、一番最初に適合した単語の文だけが「適合する単語があったよ」と知らせてくれるのであるが、それを単語全部について教えてくれるものと勘違いしていたのだ。従って、一行中に探す単語が複数登場する場合には結局1回分しかカウントされなかったのである。まずはそれを直してみたい。「GrepでMatchした行中に改めて目的の単語が何回登場するかを調べる」という2段階にすることで今回の問題は解決する。

WordFreq.exe 1999.07.21Make版 wordfreq.lzh 338kB

 本WEBサイトのモットーは「質より量」である。...これはちょっと何だな...「下手な鉄砲も数撃ちゃ当たる」...これもちょと...「転がる石に...(もちろん日本版でなくて西洋版のだ)」といった方がニュアンスが良いかな?... 転がる石は精度を求めないのである。数をこなせば精度が悪くてもいい方角に転がっていくと思っているのだ。モンテカルロ理論である。「遊び」だし。というわけで、これはバグがあった言い訳である。

 さて次は、「定量化に必要な数値を出す」である。前回の題目で使った「ホトトギス」版「坊っちやん」のダウンロード元のWEBの作成者である木村功氏より、前回の話以後にいくつかアドバイスを頂いた。それが「定量化するにはどのようにしたら良いか」ということであった。それについては、最低限の機能をつけてみた。やったのはただひとつ。出現頻度の分散を計算するようにしただけである。この数値と出現平均値を用いて、色々な文章を解析すれば、このプログラムの返す値の出現分布の分散・平均値・有意水準などを導くことができるだろう。色々な時代の、色々な作家の、色々なジャンルの文章を解析し、それらから得られた値を調べてみればもしかしたら面白いことがわかるかもしれない。

 それでは、今回のプログラムを使って遊んでみよう。

 今回用いるテキストは小栗虫太郎の「失楽園殺人事件」だ。
青空文庫 ( http://www.aozora.gr.jp/)
から手に入れたものだ。今回のタイトルどおり、「失楽園殺人事件」において「犯人」を探してみよう。

「失楽園殺人事件」において「犯人」を探したもの

 ラストのほうに向かうに従い犯人の登場が増えて、山場を迎えているのがわかるだろう。「犯人」で検索したら次は探偵の番だ。「法水」で検索し、探偵がきちんと働いているか見てみよう。

「失楽園殺人事件」において「法水」を探したもの

 なかなか出ずっぱりで活躍している。もちろん、探偵役もラストでは活躍しているようだ。

 ここまで見ていただくとわかるだろうが、画面は前回のバージョンとほとんど同じである。前回は、1物理行あたり検索単語は1個までしか見つからなかったが、今回はきちんと複数見つかっているのがわかると思う。1物理行中でもきちんと結果が出るようになったおかげで、文章中から「。」を検索すると、物理行(段落と近いもの)中に含まれる「文」の数を調べることが出来る。妙に長い文節の出現頻度などを調べることが出来るのだ。こういったものは定量化にふさわしいのではないだろうか?

「失楽園殺人事件」において「。」を探したもの

 また、C++プログラマーのあなたは自分のプログラム中から「//」などを検索すると面白いのではないだろうか。コメントの出現頻度が手に取るようにわかるだろう。

 というわけで、今回はバグ修正のご報告である。

1999-10-18[n年前へ]

沸点と数学の挑戦状 

みつからない「解決編」


 いったい、いつから疑問に思うことをやめてしまったのでしょうか? いつから、与えられたものに納得し、状況に納得し、色々なこと全てに納得してしまうようになってしまったのでしょうか?
 いつだって、どこでだって、謎はすぐ近くにあったのです。
 何もスフィンクスの深遠な謎などではなくても、例えばどうしてリンゴは落ちるのか、どうしてカラスは鳴くのか、そんなささやかで、だけど本当は大切な謎はいくらでも日常にあふれていて、そして誰かが答えてくれるのを待っていたのです....。
加納朋子 ななつのこ より

 加納朋子の「ななつのこ」という小説を読んだ。創元推理文庫から出ているのだから、ミステリといっても良いだろう。私の好きな北村薫の「空飛ぶ馬」に始まる「円紫さんと私」シリーズによく似た雰囲気を持つ本である。

 それを読んで、ふと思い出した。

 私が通っていたM高校の話だ。M高校は武蔵野の玉川上水のほとりにある。

 そのことを聞いたのは月曜の朝だ。日曜日の昼間に変質者が現れたというのである。目撃した人によれば、変質者は生徒用の上履きを履いていて、手には白い布を持っていたという。顔などはよくわからなかったそうだ。目撃者に驚いた変質者は逃げてしまい、白い布を落としていった、というのだ。
 
 それだけなら、「単なる変な奴がいた」ということで話は終わった筈だ。問題は、その白い布に麻酔薬が含ませてあったという点だった。悪ふざけではすまない。

 私は友人の鴨志田とその事件について話をしていた。気になることがあったからだ。変質者が目撃された場所が問題だったのだ。図に描くとこんな感じだ。

M高校2F平面図
現場写真

 そこは2階の中では職員室から一番遠い。一番校門に近い玄関を揚がった所である。そして、生物室の隣だった。
 生物室は、普通の教室とは違う。通常は鍵がかかっているし、それは鍵がかけられるということでもある。

 生物部の部長・副部長は生物室の鍵を使える立場にあった。そして、鴨志田は生物部の部長だった。

「変質者は生物室に出入りできる奴かな?」
「生物の部長・副部長経験者ってこと?」
「うーん。」
これはどうにも重大な問題だったのである。

「麻酔薬ってクロロホルムとか、かな?」と鴨志田にぼくが言うと、「立て板に水」状態で、彼の推論を聞かせてくれた。

「いや、きっとエーテルだね。」
「今時、クロロホルムなんて使われていないんだよ。」
「副作用もあるしさ。」
「あと、沸点を考えてみろよ。」
「エーテル、つまりジエチルエーテルDiethyl Ether ( (C2H5)2O )は沸点が34.6℃だ。」
「それに対して、クロロホルムChloroform ( CHCl3 )は沸点が61.7℃だ。」
「ハンカチにクロロホルムを含ませて顔に当ててもなにもおきない。」
「だけど、エーテルは人間の顔にあてたら、体温のせいで瞬間的に気化するんだよ。」
「つまり、エーテルの気体で顔の周りが覆われるわけだ。」
「呼吸なんかしたらエーテルを吸わざるをえないだろ。」
「だから、クロロホルムとかよりエーテルのほうが、変な用途には向いているんじゃないかな。」
「もっとも、即座に気を失うとは思えないけどね。」
 なるほど説得力はある。いや、ありすぎるといっても良い程だ。コイツ、むちゃくちゃ怪しいヤツである。犯人候補No.1である。一朝一夕で考えた理屈とは思えない。
「そういうことって生物部の部員ならみんなわかるもの?」と聞くと、
「部長・副部長をやるくらいの人は確実にわかる。けど、他の人でもわかるやつはきっと多いよ。」
また、部長・副部長経験者である。

「ところで、生物室にエーテルはある?」と訊くと、

「うん、あるよ。」
「生物室に入れる人なら手に入ると思うよ。」
とのお答え。やはり、生物室の「鍵」である。
「せめて靴の先の色がわかれば。」
「学年がわかるね。」
そう靴の先の色は赤・黄・緑と色分けされており、それで1,2,3年生の区別がつくのだ。もっとも、それと関係ないサンダルを履いている人のほうが実際は多いのであるが。それに、靴を履いていたから学内の生徒とは限らないが。

 次に、ぼくらは覚えたばかりの数学の知識をひけらかす(まだ高校生だから)話をしていた。

犯人(変質者)の条件

  • 生徒用の上履きを履いてた。
  • 麻酔薬に関する知識がある。
  • 麻酔薬を手に入れられる。
  • 生物室に入れる。
  • 一人
これは犯人の「必要条件」といえる。

ここで、私は
「ぼくは生物室の鍵を持っていないから、必要条件を満たしていないな。」
つまり、「生物室に入れる=鍵を使える=生物の部長・副部長経験者」であるから、「ぼくは必要条件のひとつを満たしていない」と主張したのだが、鴨志田は聞き入れなかった。。
「オマエに鍵なんか必要ないだろう。」
そう、物理部の部長(私のこと)になるには「錠前破りが得意」でなければならなかったのである。すなわち、物理部の部長経験者であると「生物室に入れる。」ということの「十分条件」をもれなく手にしてしまうのである。イヤーなおまけである。もっとも、私は生物・化学は苦手であるので、必要条件を満たしていない。

一方犯人の「十分条件」を考えてみるとこんなものがある。

  • 生物部の部長・副部長
これだけで、全ての必要条件を満たしてしまうのである。といっても、それはやはり単なる「十分条件」である。しかし、上の必要条件は明らかに「生物部の部長・副部長」よりも大きいだろうから、「必要十分条件」にはなりえないだろう。

犯人と生物部の部長・副部長と私に関する関係
「ところで、こんなミステリがあったらどう思う? 探偵がめちゃくちゃ論理的なヤツでさ。」
「コンパクト群の表現論なんかで語られてさ。」
「犯人を指摘する所なんか、数式だらけな話。」
「作家はMathematicaをワープロ代わりにしててさ。」
「......なんか、一般受けしそうにないな...おれにすら面白くないぞ...」
 さてさて、普通ならばここに「読者への挑戦状」が入るところだろう。だから、この話にも入れてみる。ただ、少し定型とは違う。
読者への挑戦状
 ここまでに、犯人を示す証拠が全ての証拠がそろっているとは思わないし、そもそも、犯人が登場しているかどうかすら私にはわからない。いや、実際のところ登場していないと100%確信している。しかし、名探偵のあなたなら、きっと犯人を指摘してくれるに違いない。私と鴨志田の懸念を吹き飛ばしてくれるに違いない、と思うのだ。

 犯人は一体誰なのだ...


1999-11-05[n年前へ]

草迷宮・空間'99 

ネコの目から見た世界




 「猫の視点から世界を眺める」という本や漫画は実に多い。漱石の「我輩は猫である」を始め、大島弓子の「綿の国星」がそうだ。そして、今回のタイトルになっている内田善美の「草迷宮・草空間」もそうだ。

 犬を擬人化して語られる物語もある。例えば、「のらくろ」を始めアニメの「名探偵ホームズ」もそうだ。しかし、私としては「猫の視点」で語られる物語に軍配を上げたい。どうも、犬の視点から語られる物語には、主観性が感じられないのである。好きではないのだ。

 その猫と犬の違いは、ドラえもんとヤッターワンの違いといっても良いだろう。このニュアンスが伝わるかどうかは多いに疑問であるが。

 さて、HOT WIRED JAPAN に

という面白い記事があった(技術的には)。感覚的な部分としては、何故かツマラナイと感じる部分もあるのだが、技術的には興味を感じる。

ネコの視床にある177の神経細胞に電極を取り付け、神経細胞の興奮パターンからネコが見ている画像を再構成した、という研究報告である。

 そのオリジナルの報告は

で読むことができる。ネコ好きの人には絶対できない実験だろう。

 せっかくなので、「できるかな?」でもネコが見ている世界モドキの画像を作成してみることにした。先のWEBを参考にして、モドキを作ってみる。以下の手順を納得する(あるいは納得しない)ためには、先のWEBを読むことが前提となる。

 まずは、ネコの神経細胞の視野に対応する電極位置を確認してみる。

オリジナルの神経細胞の電極位置
 視野に対応する電極の位置。赤はその内部に正の反応を持ち、青はその外部に正の反応を持つ。(ここらへん、私の理解は少しアヤシイ)

 この画像から、赤と青に対応する部分を抽出してみる。

赤と青(正の反応を持つ電極と、負の反応を持つ電極)の位置を抽出する

Red

Blue

 うーん、Blueの方はずいぶんと取りこぼしが多い。それは、赤は丁寧にやったんだけど、青は雑にやったからである。青は、あまり重要でない(と私が考えた)からである。その理由は赤と違ってあまり狭い空間分布を持たないからである。

 次に、Redと(Blueを反転したもの)を足して(黒を正として)、ガウス分布のぼかしをかける。青で示された電極を反転させたのは、それが負の反応を持つ電極であるからだ。
 その計算結果がネコの視覚モドキのフィルターである。

Redと(Blueを反転したもの)を足して(黒を正として)、ガウス分布のぼかしをかけたもの

 この画像と任意の画像をPhotoshopで「スクリーン演算」するのが、「できるかな?」的ネコ視覚フィルターである。

 ためしに、適当な画像を見てみよう。海沿いにいる人物を「もしネコが見ていたら、どう見える?」という場合である。

オリジナル画像と「できるかな?」的ネコ視覚フィルターをかけた画像

 こう見えるのだ(保証はしないけど)。

 「ネコが私を見るとどうなるか?」と思ったことは、何回かあるが、まさかその答が手に入るとは思わなかった。科学、恐るべし、だ。




2000-07-31[n年前へ]

針の穴の謎 

名探偵コナンから。

2000-12-24[n年前へ]

サンタクロースを捜して 

Double Role on Christmas Eve


 クリスマスが近くなると子供達は「サンタクロースにお願い」をし始める。といっても、子供達がサンタクロースがどこに住んでいるのか知っているわけもないし、かといってサンタクロースへの伝言板があるわけでもない。これがゴッサムシティに住んでいるバットマンなら夜空にバットシグナルを照らし出せば良いし、シティハンターなら駅の伝言板に書き込みをすればちゃんとメッセージは伝わるだろう。

 だけど、サンタクロースに関してはそんなホットラインは残念ながら無いのである。子供達はサンタクロースに「自分が欲しいもの」をどうやって伝えれば良いのか実際のところ判らないのだ。じゃぁ、子供達はどうすれば良いのだろう?どうすればサンタクロースが何処にいるのか知ることができるだろう?サンタクロースを探すにはどうしたら良いのだろうか?

 これまでなら、子供達は身の周りの大人達、自分よりも色んなことを知ってそうな大人達に「サンタクロースは何処にいるの?」と聞いていたに違いない。だけど、色んなことを知ってるはずの両親や保母さんも「サンタクロースが何処にいるか」は何も教えてくれない。残念ながら、色んなことを教えてくれる大人達もサンタクロースのことに関しては何故か何も知らないようなそぶりを見せる。

 そんな風に、これまでなら子供達には他に調べる術もなかった。だけど、今なら違う。インターネット上に「検索サイト」がたくさんあるのだ。今の子供達は例えばGoogleで「サンタ」と入力して検索のボタンを押すだけで、なんと25300件もの情報(2000.12.24現在)を集めることができる。子供達は「インターネット上でサンタクロースを捜す」ことができるのだ。

 だけど、子供達にはそんなサンタを捜す手段はあるのだけど、それでもなかなか上手くサンタを見つけられないことだろう。まだまだ、上手く情報を選別できないこともあるだろう。そこで、今回はそんな子供達のために、インターネットで「サンタクロースを捜して」みた結果を書いてみたいと思う。サンタクロースが誰だか調べるテクニックとそのヒントをホンの少しだけ書いてみたい、と思うのだ。
 

 さて、それではサンタクロースを捜してみることにしよう。まずは、「関係者を調べて」みる。サンタクロースと誰が関係していて、誰が関係していないのかを調べてみるのである。と、いきなり言われても判りづらいだろうから、まずは例を出してみたい。例えば、どうみてもサンタクロースの関係者のハズの「トナカイ」を考えてみよう。まずは、「トナカイ」をGoogleで検索すると23500件の情報がある。そして次に、「トナカイAND サンタ」で検索すると、9060件の情報があることがわかる。トナカイの全ての目撃情報(Googleによる)が9060件であるのに対して、「サンタと一緒にいるトナカイ」の情報は9060件の目撃情報があるのだ。つまり、9060/23500= 38.6%もの高い確率でトナカイは「サンタと一緒にいる」のである。
 

トナカイとサンタの「関係」 → どうみてもトナカイはサンタの関係者である

 この「トナカイとサンタの関係」を見せただけでは、少し疑問に思う人もいるだろう。そこで、次にサンタと無関係そうな白馬の場合で調べてみよう。果たして、白馬がサンタの関係者であるかを捜査してみるのだ。

 まずは、「白馬」単独で検索をすると108000件の目撃情報が見つかる。それでは、「白馬AND サンタ」で検索するとどうなるだろうか?なんと、795件しか見つからないのである。つまり、「サンタと一緒にいる白馬」は795/108000= 0.74%しかいないのだ。これは、どうみても白馬はサンタと無関係であることがわかるだろう。白馬に乗って現れるのはやはり「王子さま」であって、サンタではないのである。そしてまた、この検索方法の妥当性も納得して頂けることと思う。このやり方で検索を続けていけば、サンタの正体もいつか判るハズなのだ。
 

白馬とサンタの「関係」 → どうみても白馬はサンタと無関係である

 これを読んでいる子供達がこの検索方法を使えば、きっとサンタをいつか見つけることができるだろう。あとは子供達が自分で捜すことだろうから、もう私が捜すのはここまでだ。

 だけど、ちょっと気になることがあるのでそれだけは調べておきたいと思う。それは、サンタと子供と大人の関係だ。何故なら、去年「サンタが街にやってくる」の中で私は「サンタクロースの巡回問題」を考えることで、「子供達が大人になって、そしてサンタになる」と推理してみた。じゃぁ、サンタと子供と大人の関係は一体どうなっているのだろう?それだけは、ちょっと調べてみたいのだ。子供達がサンタのことを訊いても、サンタのことを何も知らなさそうなそぶりを見せる大人達は本当にサンタと無関係なのだろうか?それだけは調べておきたいと思うのである。

 そこで、サンタと一緒に目撃された(Googleに)子供と大人の割合を調べてみた結果が次の表だ。
 

サンタと子供と大人の関係
サンタと一緒に目撃された割合
子供1.4%
大人0.018%
(参考:プログラマー)0.57 %

 これを眺めてみると、とても興味深いことがわかる。なんと、サンタと一緒に目撃された子供の割合は1.4%であるのに対して、サンタと一緒に目撃された大人の割合は0.018%しかないのである。二桁も違うのだ。もう、どうみてもサンタと無関係そうなプログラマーでさえ(プログラマーには実に失礼であるが)、0.57%もサンタと一緒に目撃されているのに、大人はそれより遙かにサンタと一緒には現れないのである。0.018%なんてほとんど0%だと言っても良いくらいだ。サンタと大人が一緒に目撃されることはもう全然無いのである。

 さっきのトナカイの場合なんか、38.6%もサンタと一緒に目撃されていて、「サンタがいるところにはトナカイがいる」と言っても良いくらいなのに、それとは全く正反対だ。「サンタがいるところには大人はいない」のである。「サンタと大人が一緒に現れる」ことはないのだ。だから、きっと大人とサンタは無関係なのだろう。子供達がサンタクロースのことを大人達に訊いても何も教えてくれなかったのも当たり前だ。大人達はサンタと出会ったことがないのだから、それはしょうがない。だから、実は大人達はサンタのことを何も教えることができないのだ。ただ、サンタのことを本当に知らないだけなのだ。

 サンタが現れているときには大人の姿は見えず、大人が現れているときにはサンタは現れない。だから、大人達はサンタのことを知らない。そう単純にそれだけのことだ。ただそれだけのことだ。    だけど、もしかしたら本格ミステリー大好きの名探偵コナンのような子供であれば、そこに何かのトリックでも思いつくのかもしれない。   それでも、そんな名探偵コナンのような子供だってきっといつかは…
 



■Powered by yagm.net