今回はアキネイターをそのうち作りたいなと考えている僕がアキネイターのアルゴリズムを考えてみました。
プログラミングをしたことがない人でもアキネイターがどんな風にして動いているのか気になった人は多いかと思います。
アキネイターをやったことがない人はこれを機会に是非一度試してほしいです。
アキネイターとは?
サイトにアクセスするとランプの魔人が登場します。
アクセスしたユーザーが人物を連想します。アニメキャラだったり漫画キャラあったりスポーツ選手だったり歌手だったり
連想が終わったら魔人の質問が始まります。いくつかの質問に回答するとアキネイターがユーザーが連想した人物を回答してくれるというものです。
このアキネイターが正解率が凄い!なんでこんな人物まで知ってるんだ!!と評判なんです。
質問方法
どんな仕組みで動くのか
どのようにして質問を絞るのか?
漫画キャラが残ります。
実在しない場合、ロボットかという質問でさらに絞られます。
候補
マジンガーZ
ドラエもん
ガンダム
ゲッターロボ
エヴァンゲリオン
「二回以上映画化されている?」この質問でマイナーな多くの作品が消えたと思います。
候補
マジンガーZ
ドラエもん
ガンダム
ゲッターロボ
初音ミク
エヴァンゲリオン
「あなたが想像しているキャラクターは、名前に「ー」がつく?」
ここでドラえもんは「ー」は使わないのでマジンガーZとゲッターロボが消えます。
候補
ドラエもん
ガンダム
初音ミク
エヴァンゲリオン
青い?という質問でいよいよドラえもんのみに絞られます。
他にも「イメージカラーは紫?」とか
「赤い?」といったような質問もあります。
編集上の都合により、丸が2つ余計に残ってしまいましたが、このようにして、回答を出していると思います。
答えを考えてみる
今、計算で言うと1+1=2の1+1の部分を考えてみましたが、
2の答えの部分もコンピューターに教えてあげないといけないですよね?
エヴァンゲリオンなら紫で碇シンジがパイロットでスマートなロボットだと僕らは知っています
ドラえもんなら青くて丸くて猫型ロボットだと僕らは知っていますがコンピューターはしらないんで答えを用意しなければならないです。
どうやって正解を用意するのか?
どうやって正解を用意しているかというと、アキネイターが答えられなかったときです。
多くの人は自分が連想するキャラのプロフィールをある程度知っているメジャーな人を最初は思い浮かべると思います。
が、何度かやっていくうちにマイナーな人物を思い浮かべ始めると思います。
メジャーデビューしていないアーティストとか
誰も思い浮かべないようなマイナーな漫画とか
そういうのが出てくるとアキネイターでも答えられない場合があります。
その時は、ユーザーがどのような人物を想像していたか答えるんですが
ドラえもんの例を見てみると
「実在する?」+1
「男性ですか?」+0
「ロボットですか?」+1
「キャラ名が作品のタイトルになっている?」+1
「あなたが想像しているキャラクターは、名前に「ー」がつく?」 +1
「青い?」+1
「はい」+1
「いいえ」-1
「分からない」0
「たぶん部分的にそう」+0.5
「たぶん違うそうでもない」-0.5
こんな感じでしょう。
また正解した場合もドラえもんに至るまでの質問で「はい」と答えた質問を記録してアンケートに足していっていると思います。
なぜアンケートなのかというとこの仕組みはユーザー任せにしているので
ドラえもんを連想していたにもかかわらずいいえを押す人
適当に入力してアンパンマンが出てきたが連想していた答えは違ったにもかかわらず
正解と答える人などなど色々ないたずらも予想されるからです。
一回の正解で答えを出していたらめちゃくちゃになってしまいますのでアンケート方式を取っているのではないかなと思います。
このような膨大な量繰り返していけば、アキネイターの完成です。
用意するのは質問だけでOKだと思います。
意外にも答えに至るまでの質問の種類って少ないです。出される質問も少ない
まとめ
実際のアキネイターがどうなっているかは僕は知りませんが、僕が考えたアキネイターはこのような感じで動きます。
今後、アキネイターのようなものを作りたいと考えた人がいれば参考になればなと思っています。
コメント