BLUE ver.5.1.0をリリースしました。-解説

前回のpostに有る、リスナ/トーカ(対話をリードする聞き手/話し手の関係)という言葉は、ちょっと象徴的に使ってきた。当時かなり活発に活動していた「人工無脳は考える」のサイトでも「リスナ/トーカ」の考え方が既出であることは以前に紹介したが、本バージョンの構想当時に、いくつか有るアイデアの中で一番面白そうに思えたから。

  • 当時考えたのは、主なものを挙げると3つ
    1. 人工無脳としての洗練・進化(感情表現をもっと複雑にとか、学習を高度にとか)
    2. 意味カテゴライズ←すぐ諦めた(当時)
    3. 会話パターン(1回のターンだけで終了しない会話のパターン)←(会話ステージのフォロー)
      • このとき色々なパターンが有ることを調べたが、その中で
        • うまく応答したり、ナナメに応答する「洗練」も面白いかと思ったが、
        • 「応答」ではなく、対話をリードするような役割:「リスナ的な役割」はこれまでには(ELIZA以外には)あまり見られないので面白いと考えた。
        • ただ、リスナ的と言っても、一方的に発話する場合や、話題切り替え、独り言などを除くと、visitorの発言の意味を理解することが重要になってくる。
        • そこで「リスナ的な役割」を持たせるために、visitorの発言の意味を理解の上、visitorに話題への賛否を意思表示したり、visitorの賛否に対して何か反応を示すというのをやってみることにした(これは「リスナ的な役割」の中では最も入り口に近い所と思うが。)
        • 結局「面白そう」という理由で上の1,2は止めて3を選んだことになる。
      • (経緯について前のブログ記事を読むとなんとなく(本人は)思い出すが、体系立ってないので本人以外に対し前の記事を読んでくれとは言えないところ。)
  • そこで意味理解のようなものについて、
    • 何かを提案したり、賛否を表明する場合、それは「今自分が何を言っているか(のstatus)」を自分で理解していないといけない。それはつまり、話題に対し、最低限ポジティブなのかネガティブなのかを明確にしないといけないということになる。これを話題の「意味を理解している」ことの第一歩とした。
    • 意味の理解については、それ以前のプログラムで、非常に単純なシングルパラメータでポジティブ/ネガティブを表す試みを行っていたので、それをマルチパラメータ化してやや複雑(に見える)なものを表現するようにしてみた。(ただ、いわゆる非ニューラルネット系のシステムなためある程度事前の打ち込みが必要で、少し煩雑になってしまう。)