|
育成型ゲームの考え方2
|
|
|
1999.12.21
|
|
| <育成〜シーマンの場合〜> ☆最近のは流行 ドリームキャストの「シーマン」やプレイステーションの「どこでっもいっしょ」など、ゲームの中のキャラクタと会話を楽しむゲームがはやりである。シーマンに疲れたと言えば「大変だな。しごとか?」などと聞き返されるという、あたかもキャラクタが生きているかのような錯覚をおちいらせてくれる。こんな不思議なゲームが出てくるなんてすごい時代になったものです。 このようなゲームは本当にユーザの会話を理解して答えてくれているのか?本当に心配してくれているのか?プログラマにとっては非常に興味のわくところです。 しかし、このようなゲームは最近になって初めて出来てきたものなのでしょうか?実は昔からこのてのゲームは存在していたりします。筆者がこの手のゲームを最初に知ったのは十年も昔であり、その頃の総称は「人工無能」といいました。 ☆人工知能と人工無能 今まで直接的に経験したことのない事でも、過去の経験から自分の力で答えを求めるプログラム、このようなものを「人工知能」と呼びます。SF映画の中で出てくる意識を持ったアンドロイドやコンピュータなど、疲れたと言えば、"感情をもって"いたわりの言葉をかけてくれる。このように、人工的に作った知能を「人工知能」と呼びます。 これに対し人工無能は、まるで"感情を持っているかのように装って"いたわりの言葉をかけてくれるものをいいます。「無能」という言葉からもわかるように人工知能の様に見えるけれども、実はなにも考えていない、とぼけた奴なのです。でも、勘違いしてほしくないのですが、とぼけていると言っても簡単に作れるとは言っていません。基本的な考え方は簡単なのですが、それなりに会話を成り立たせようとすれば、それなりの工夫が必要です。 ☆シーマンの考え方 シーマンの内部を探ってみましょう。ただし、実際の構造を聞いたわけではないので、筆者ならばこう作るであろうという視点で書きますのでご了承ください。 シーマンの構造は大きく「音声認識」「構文認識」「回答選択」3つに分けられます。 まず、「音声認識」は最近流行の音声入力ソフト(IBM社のビアボイスが代表的である)の機能である。マイクから取り込んだ音声をA/D変換器でデジタルデータとして取り込み、言葉として理解するのが仕事です。たとえば「今日は疲れた」とマイクに喋れば「きょう は つかれた」と変換します。 次に「構文解析」は、文章変換ソフト(IMEやATOKが)代表的である)の機能である。音声認識の結果である「きょう は つかれた」から「今日 は 疲れた」と変換し、「今日=名詞」「は:接続詞」「疲れた=動詞」と理解します。 最後に「回答選択」ですが、これが人工無能の中枢であり、「音声認識」「構文解析」は「回答選択」の準備でしかありません。 #人工知能の場合もここまでの処理は同じです。自分で人工無能を作るのであれば、キーボードか#ら文字を入力させれば、「音声認識」は必要まくなるので少しは簡単に作れるでしょう。 人工知能の場合の回答選択は、人間と同じ様な考え方で答えを導き出します。たとえば「今日は疲れた」と聞けば、「今話しているのは自分の持ち主だ」「その持ち主が疲れたらしい」「"今日は"と短期間の話をしているのか・・・」などと、いろいろなことを考え、それぞれを関連づけ、結果としていたわりの言葉で対応します。 それに対して人工無能の場合の回答の選択は、「単語に反応する」という作業で決定する場合が多いようです。どんな文章であれ「疲れた」という単語が入っていたら、「疲れたのか?」と単純に決まった回答をするのです。どうです、会話になっているでしょ? 実際のプログラムとしては、「疲れた→疲れたのか?」「眠い→ちゃんと睡眠とっているのか?」「楽しい→俺も楽しいぜ」というデータベースを組み、文字列比較をすればよいでしょう。工夫する点としては、「疲れた」にたいして1つの回答しかしないとユーザは飽きてしまうので、いくつかの回答を用意しておきランダムで選択するとよいでしょう。 さらに、賢くしたいのならば、データベースを工夫します。たとえば「"時間"+"は 疲れた"」というように単語の並びで判定するようにします。構文解析で「今日、今、昨日・・」などは時間に関する属性であるという認識させるようにします。時間に関する単語の後に「は疲れた」ときたら、「疲れたのか?"時間"なにをやっていたんだ?」という文章の内、"時間"の欄に入力された「今日、今、昨日・・」を挿入すれば「疲れたのか?今日なにをやっていたんだ?」という文章ができあがります。どうです、さっきよりも賢くなったでしょ。 もちろん、これだけでまともな会話になるとは思えません。多くの情報を会話の中から得て後の会話に反映できるようにいろいろなパターンを作らなければならないでしょう。まともに作ろうとすれば人口無能もかなり面白い研究テーマだと思います。この機会に人口無能に挑戦してみては? |