1. まとめトップ

人工無能ソースコード

「恋するプログラム」をみんなで作ろう。会話ボットは人間の発した特定の単語やフレーズを認識することで「会話」することが多い。

更新日: 2019年07月22日

20 お気に入り 55965 view
お気に入り追加

この記事は私がまとめました

twcritiqueさん

会話をよく理解することで、意味のある対話が続けられるが、ほとんどの会話ボットはそれができていない。その代わり、会話ボットは人間の発した特定の単語やフレーズを認識することで「会話」することが多い。そうすることで会話を真に理解していなくとも、意味がある(通る)ように見える事前に準備された応答を返すことができる。

例えば、人間が "I am feeling very worried lately,"(私は最近とても心配だ)と入力したとき、会話ボットは "I am" というフレーズを認識し、そこを "Why are you" に置き換えて最後に疑問符をつけ "Why are you feeling very worried lately?"(なぜあなたは最近とても心配だと感じているのか)と応答する。

イライザ

アメリカのMITで開発されたEliza11 J. Weizenbaum, "ELIZA--A Computer Program For the Study of Natural Language Communication Between Man and Machine", Commun. ACM 10[1] 36-45(1966)はセラピストとしてユーザと対談することで知られており,彼らの好きなチューリングテストにかけられてかなりの好成績を残したエポックメイキングなプログラムのひとつである。そして現在ではそのソースはさまざまなプラットホーム用に移植されており、Perl5 用のモジュールChatbot::Elizaとしても意外と簡単に手に入る。そこで今回はElizaのソースを見ながら多くの人を錯覚させた機構の正体を眺めてみる。

LIZA効果(イライザこうか、英語: ELIZA effect)は、意識的にはわかっていても、無意識的にコンピュータの動作が人間と似ていると仮定する傾向を指す。これは、プログラミングの限界の自覚とプログラムの出力を生む動作との微妙な認知的不協和の結果とされる。ELIZA効果は人工知能研究における重要な発見であり、チューリングテストに合格するには明確なプログラミングよりも社会工学の活用が重要であることが明らかとなった。

Elizaの会話機能の中核部分は分解decompと再構成reasmbである。

elizaは人間の入力からrememberという単語を発見した場合,decompの * i remember * というルールが適用できるかどうかマッチングを行ない,*は順番にその後の(1)や(2)に展開される。正規表現の( )に相当すると思えばよい。次にreasmbに並んだ候補を前から順に選択してユーザに返している。重要なポイントは積極的にユーザの発言をとり入れて返事に組み込んでいる点で,それによってユーザはelizaがちゃんとこちらの言うことを聞いているような錯覚を覚える。rememberの最後の5という数字は優先度である。

結局答えた内容の評価はせず,さらに質問で返している。このひたすら聞いて,絶対に答えの評価をしないという挙動は心理カウンセラーの基本的なルールである。

リンク

1 2