会話の流れをプログラムにのせる

人工知能のしくみとして、ポリシー・意志主張の織込みを検討するために、実際にプログラムの中身を考えて行くと...  提案者、positive/negative、自由文入力/定型入力により、「いくつかのケースに分けて考える」ことになるが、単純に考えると、ケースの数がかなり多くなり、データベースの数も多くなる。
6/16のエントリーで書いた、単純化したものを基にすると、(自由文入力の場合、)

  • 提案者: (「〜のことを○○と思う」などの「提案」)[TH]
    • 聞き手: positive賛(同意)否(不同意)[FO](in/outパラメータ付)
      • 提案者: 「満足」[FI](「不同意」の場合は「困惑」)
        • 聞き手: positiveな理解の補足[SI](「不同意」の場合は「反対」など)
          • 提案者: 「満足」[FI](「不同意」の場合は「困惑」)

となり、ここで、[TH][FO][FI][SI]の4つのデータベースが使用されることになっている。しかしその後プログラムの流れを再確認して行くと以下の点が気になった。

  • 最初の「提案」段階では、入力語に対するvisitorとagentの持つpositive/negativeの差が直接「同意」「不同意」の反応につながると考えられる。しかし、聞き手側が「同意」した場合、それぞれの理解がpositive/positive(+/+)の場合とnegative/negative(-/-)の2つのケースが考えられ、「同意」のことばだけからでは、それぞれがどちらの理解だったか遡れない。常にagent側がどちらの理解か記憶しておき、「同意」の度にvisitorがpositiveかnegativeか確認する手順が必要になる。(これまでの考察では、入力からpositive/negativeが直接読み取れるような書き方をしていた。)
    • この手順の後、改めて、visitorとagentの持つpositive/negativeの差を確認して「同意」「不同意」を求める手順にしようと思ったが、結局「同意」「不同意」を求めるだけであれば、上のそれぞれのpositive/negativeの確認作業自体不要な気がしてきた。(それぞれの理解に基づいてもう少し高度な応答をする場合は必要かもしれないが。)
  • 最初の「提案」に対し、聞き手側が「不同意」の場合も同様に+/-と-/+の場合が考えられ、「不同意」のことばだけからでは、どちらのケースなのか判定できない。
  • このシステムでは、++または--の場合、「同意」の反応をすることにしているが、実際は、++の時「良いね」、--の時「良くないね〜」という反応が有り得る。しかし、「同意」「不同意」を判断材料にしたシステムでは、これらは扱いづらい。