• 検索結果がありません。

連想ネットワーク

ドキュメント内 ii i (ページ 56-59)

第 4 章 超伝導 34

5.3 連想ネットワーク

52 第5章 自然言語

5.2.8 「しりとり→グラフ→数理」!!!

さて、これで問題が先手必勝であることと、その必勝法もわかりました。これが数理の力です。そして この数理はコンピュータに実装することができるため、コンピュータも必勝法を計算できることになりま す。そのため、問題が先手必勝か後手必勝かを正しく判断し、その後必勝法に従って単語を選んでいった ときのみコンピュータに勝てるということになります。これが詰めしりとりである「しりトらす」ゲーム の仕組みです。

ところで、しりトらすが数理的に解けて必勝法も存在することには数学的な理由があります。それはし りトらすがゲーム理論(数学の一分野)で言う「完全情報確定的有限二人ゼロ和ゲーム」(=ゲームの状 況が全て1手ごとに公開されていて、いつか必ず勝負がつく、二人のうち片方が勝ってもう片方が負ける ゲーム)であったためです。

また、しりトらすの先手・後手必勝判定は、PSPACE完全(=チューリングマシンによって多項式領 域で解ける問題のうち、最も「難しい」問題)であることも知られています。詳しい説明は省きますが、

PSPACE完全な問題は別のPSPACE完全な問題に効率的に書き換えられます。例えばオセロや五目並べ

などの必勝判定がPSPACE完全ですが、これらの問題を解く効率的な方法を見つければ、同じ方法を応 用してしりトらすの必勝判定問題を解くこともできるのです。逆にしりトらすの必勝判定問題を解く効率 的な方法を見つければ、オセロや五目並べなどの必勝判定問題も解けるので、しりトらすの必勝判定問題 とこれらの問題は「同じ」問題だと考えてしまいます。*9

PSPACE完全な問題はまだまだたくさんあります。また、PSPACE完全な問題に書き換えることがで

きる問題は他にもいくつかの種類があることが知られています。つまり私達は、しりトらすを考えると同 時に、たくさんの問題についても考えていたことになるのです。

このように現象を数理的に扱うことで、しりとりに限らない様々な現象が同じ枠組みに収められ、統一 的な視点から議論できるようになります。これこそ私たちが伝えたい、数理の本質です。

以上でしりとりゲーム「しりトらす」のお話はおしまいです。しりとりという言葉遊びがこのように数 理という豊かな土壌で扱うことができることに少しでも感動していただければ、私たちにってこれ以上な い幸せです。

まず、スタートの「バナナ」を書きます。そして「バナナ」

から連想される単語、例えば「黄色」「甘い」「果物」「ゴリラ」

を「バナナ」の周りに書き、それぞれ「バナナ」と線で結び ます。次に、今度はさっき書いた「黄色」の周りに「レモン」

「卵焼き」「色」…を加えて、同じように線で結びます。

これをたくさん繰り返していくと、とても大きな、線で結ば れた点の集まりができますね。このような点と線の集まりは

「ネットワーク」と呼ばれており、いま目の前にあるのは「連 想」によって出来た「ネットワーク」ですから、これを「連想 ネットワーク」と呼ぶことにします。ある点の周りには、そ の単語から連想される単語が結び付けられているわけです。

5.3.2 コンピューターに連想ネットワークを作ってもらおう!

さて、先ほどのような連想ネットワークを作り続けていくと、たくさんの単語を追加して、たくさんの 結びつきを作りたくなります(なることにして下さいね笑)。しかし、単語が増えれば増えるほど、「この 単語はまだ出てきてないかな?」「この単語と結びつく単語はもうないかな?」といったことを考えるの が大変になっていきます。

しかも、世の中には本当にたくさんの単語があります。日本語に限っても、例えば広辞苑に載っている 単語は、23万個もあるそうです。ここまでいくと、普通の人間ではもうどうしようもないくらい大変な 作業です。そこでパワーを発揮するのが、コンピューターです。

基本的にコンピューターは、人間と違ってものを考えることは出 来ませんが、決められたことを繰り返すことは、ものすごく得意で す。高速に、間違いなくやろうと思ったら、人間では全く歯が立ち ません。ですから、上手に使ってやれば、これほど頼もしいパート ナーはいません。

わたしたちがなんとかしてコンピューターに連想ネットワークを 作ってもらえるためには、その手順の命令を考えなければなりません。実は、こんなふうに気の利かない コンピューターを上手に操る命令を考えるのも、応用数学の醍醐味の一つなのです。

54 第5章 自然言語

5.3.3 共起依存度を計算する

ところで、そもそも「ある単語からある単語が連想される」とは、

一体どういうことなのでしょう?これは、とても難しい問題です。

わたしたちはそれを考える手がかりとして、いろんな人が書いた長 い文章の集まりを用いることにしました(このように、コンピュー ターが解析するための長い文章の集まりを、「コーパス」と呼びま す)。例えば、右の図をチラリと見て下さい。これは2007年5月8 日の日経新聞の記事です。

わたしたちのイメージでは非常に近い「バナナ」という単語と「果 物」という単語ですが、この新聞の文章を眺めていると、それぞれ がよく同じ文章に出現していることがわかります。私たちは単語ど うしの関係のこの性質に注目しました。つまり、同じ文で出くわす ことの多い単語どうしは、関連があってそれぞれ連想される関係に あるだろう、と考えたのです。

このような単語の関係のことを、「共起依存」関係と呼びます。あ

る単語Aが文章に出現するとき、別のある単語Bが同じ文章に出現していることが多いのであれば、単 語Aが単語Bに共起依存している、というのです。これを数字で測るために式で表すと、

単語iから単語jへの共起依存度= 単語iと単語jが一緒に出ている文章の数 単語iが出ている文章の数

となります。

例として、右の三つの簡単な文章で一つの依 存度を計算します。自分でやってみて、私たち の計算と合うかどうか試してみて下さい。共起 依存度は2/3になるはずです。

このように方法が決まれば、あとは自ずと手 順は決まってきます。一文ずつ読み込んで、そ れぞれの単語がどの文で出現したのかを調べて いき、その後に先ほどの式を使って計算してい くのです。

5.3.4 連想ネットワークを使って遊ぼう!

上の説明で、連想ネットワークの作りかたはお分かり頂けたでしょうか?

さて、連想ネットワークをコンピューターの中に作ると、一体何が嬉しいのでしょうか?実は、様々な 応用が考えられています。まずは、「情報の可視化」です。当たり前かもしれませんが、新聞に推理小説 にブログと、私たち現代人は非常にたくさんの文字媒体の情報源に目を通さなければいけませんね。しか

歴史上の重要人物の関係を「見る」

コンピューターも人間くさくなる!?

し、本や論文を読んだりするのって、時間がかかりますよね。連想ネットワークを使えば、テキスト中に 現れる言葉同士の関係を「見る」ことが出来ます。本当はいちいちテキストを読まなければ得られない情 報を、一見でパッと見ることができる。そして、今まで資料を読んでいるだけでは見つからなかったよう な言葉と言葉の関係を発見することが出来る。特に、歴史資料の連想ネットワークなどは、今までにな かった史学研究のお手伝いさんとして、活躍しています。

また、連想ネットワークを持つことによって、人間に似た思考ができるコンピューター、すなわち人 工知能にも応用できないかと考えられています。人間は、「コーヒー」と聞いたら、そこから連想できる

「砂糖」や「ミルク」や「黒い」や「飲み物」という単語も、意識をしますよね。それこそが、「コーヒー」

を知って、理解していることの表れなのですから。連想ネットワークを使って、「コーヒーを飲みます?」

と聞かれて「砂糖はありますか?」と聞いてくるようなコンピューター。そんな人間くさいコンピュー ターを作るのにも、連想ネットワークの延長線上にあります。

私たちは、展示として、様々な文章を読み込んで、連想ネットワークを作ってみました。あなたの大好 きだったおとぎ話から、あの壮大な物語まで。その連想ネットワークを見て、触って、冒険して頂くこと が、私たちの望みです。連想の迷路を彷徨っている間に、人間から見ても思いがけない関係を見付けるこ とが出来るかと思います。

ドキュメント内 ii i (ページ 56-59)

関連したドキュメント